Apa yang Anda sebut API berbasis HTTP, menggunakan URI untuk memberi nama sumber daya dan kata kerja HTTP (PUT, POST, DELETE, DAPATKAN ...) untuk memanipulasi sumber daya itu?
Menurut keluhan Roy Fielding itu bukan REST, karena tidak ada hypermedia.
Secara internal, di tim saya, semua orang menyebutnya "REST API". Saya menyebutnya "REST-like" tetapi tidak deskriptif dan artinya tidak jelas. Saya cukup bingung tentang itu, karena ada perbedaan pendapat besar tentang REST. Saya tidak ingin ambil bagian dalam perang api, tetapi cukup gunakan istilah yang benar.
terminology
rest
api
http
pkalinow
sumber
sumber
Jawaban:
Sebut saja API HTTP .
Ini sesuai dengan standar HTTP, dan tidak memiliki apa pun yang berlapis di atas (mis. SOAP).
Standar HTTP menentukan sumber daya, kata kerja, tajuk, negosiasi konten, dll.
REST (REpresentational State Transfer) adalah arsitektur dengan persyaratan yang sesuai dengan standar HTTP yang ada, tetapi HTTP bekerja dengan sendirinya.
Dalam pengalaman saya, 90% dari "REST HTTP APIs" harus menyebut diri mereka "hanya" sebuah HTTP API.
Jangan malu untuk meninggalkan label REST. Seperti halnya layanan-layanan microservice dan non-relasional, Anda tidak perlu memiliki API yang tenang untuk menjadi keren. Roy berangkat untuk menciptakan arsitektur aplikasi jaringan yang berumur paling lama, paling kompatibel, dan terbelakang yang dia bisa. Dia melakukan pekerjaan dengan baik. Tetapi tidak semuanya membutuhkan kompatibilitas 40 tahun.
sumber
Richardson Maturity Models seperti ini
Jadi menurut model saya akan menyebutnya layanan web yang sesuai dengan richardson level 2 atau sesuatu seperti itu.
http://martinfowler.com/articles/richardsonMaturityModel.html
sumber
Hypermedia tidak pernah benar-benar menjadi populer dengan API seperti REST - sampai pada titik ketika API benar-benar mengimplementasikan navigasi hypermedia, istilah RESTful tidak cukup untuk membedakannya dari API web "RESTful" lainnya. REST telah menjadi istilah umum atau semua API web berbasis sumber daya dan nama baru seperti Hypermedia API telah diciptakan untuk fokus pada konsep hypermedia.
Saya tidak benar-benar ingin menganjurkan penggunaan istilah yang salah, tetapi saya pikir bahwa interpretasi umum modern REST hanya berarti menggunakan URL yang seragam dan kata kerja HTTP untuk kebanyakan orang. Itu tidak benar, tetapi siapa pun yang tahu definisi Fieldings, juga harus tahu bahwa banyak orang lain tidak. Di sisi lain, siapa pun yang mengetahui REST hanya dengan mengamati bagaimana API "RESTful" yang ada diimplementasikan, tidak akan tahu apa yang Anda bicarakan ketika Anda menyebutkan kendala REST yang kurang dikenal seperti HATEOAS atau kode sesuai permintaan. Fielding mungkin tidak menyukainya, tetapi saya pikir sudah terlambat untuk kembali ke definisi asli *. Dan mari kita jujur: Jika Anda mendengar seseorang berbicara tentang REST API-nya untuk pertama kalinya, Anda langsung menganggap itu tidak termasuk hypermedia, bukan?
Bersikeras pada definisi RESTful yang benar biasanya hanya menciptakan kebingungan tambahan. Seperti halnya banyak istilah yang telah mengubah maknanya dari waktu ke waktu atau bahwa massa hanya salah mengadopsi, saya menghargai jika seseorang mengetahui definisi asli tetapi saya tidak akan memperbaiki siapa pun yang menggunakan interpretasi modern REST yang lebih luas.
* dan juga terlambat untuk menetapkan persyaratan baru untuk API non-hypermedia seperti REST, dalam hal ini. Bagaimana kita harus memanggil mereka? ... tenang ?
sumber
Ini adalah antarmuka CRUD (Buat, Baca, Perbarui, Hapus) melalui HTTP.
Saya tidak bisa memikirkan otoritas yang mendukung pernyataan ini, jadi saya harap Anda mendapatkan jawaban yang lebih banyak dan lebih baik.
sumber
Anda dapat menyebutnya apa pun yang Anda suka, orang cenderung (hampir secara religius) menempel pada bagian mana pun dari 'spec' REST yang tidak Anda ikuti dan menggunakannya sebagai titik protes yang sangat merugikan perkembangan. Namun demikian, fakta sederhananya adalah ada (hampir) nol layanan yang menerapkan REST sejati untuk layanan API mereka.
Di tim kami, kami menamai milik kami
Stateless API
saat itu sedang dalam pengembangan karena kami memiliki warisan API SOAP Stateful dan Fungsional yang kami ganti (API warisan itu sendiri tidak pernah memiliki nama yang disepakati dan bermakna baik sehingga kami tidak terlalu terjebak dalam nama ).Sekarang proyek ini hanya memiliki satu API
the <project> API
. Ketika kami akhirnya menggantinya, API baru hanya akan dikenal sebagaithe new <project> API
.Memberinya nama yang mewah dan deskriptif hampir tidak ada artinya kecuali Anda memiliki begitu banyak API sehingga Anda perlu membedakan ini dari yang lain (dalam hal ini Anda mungkin harus mengganti nama yang lain juga).
sumber
Anda bisa menyebutnya API Web . Ini adalah istilah yang sangat luas tetapi dapat menghindari nitpicking tentang arti definisi tipe API lainnya. Istilah ini kurang teknis dan tepat dibandingkan dengan alternatif seperti HTTP API , tetapi itu mungkin menguntungkan ketika berbicara dengan orang-orang non-teknis.
Istilah ini juga digunakan oleh Leonard Richardson (yang mendefinisikan Richardson Maturity Model yang sudah disebutkan jawaban lain - pengukuran yang diterima dengan baik untuk seberapa dekat API dengan arsitektur REST). Ini adalah apa yang Anda dapatkan jika Anda membuang bagian "RESTful" dari " RESTful Web API ".
sumber