de-vraag
  • Pertanyaan
  • Tag
  • Pengguna
Notifikasi
Imbalan
Registrasi
Setelah Anda mendaftar, Anda akan diberitahu tentang balasan dan komentar untuk pertanyaan Anda.
Gabung
Jika Anda sudah memiliki akun, masuk untuk memeriksa pemberitahuan baru.
Akan ada hadiah untuk pertanyaan, jawaban, dan komentar tambahan.
Lebih
Sumber
Sunting
Andrey Shchekin
Andrey Shchekin
Question

Menggunakan kata kerja dalam URL pada dasarnya tidak sesuai dengan SISANYA?

Jadi let's mengatakan bahwa kita memiliki sesuatu yang tidak tampak terbaik diwakili sebagai sumber daya (status dari proses yang kita ingin berhenti, bernegara perhitungan yang ingin kita lakukan pada server, dll).

Jika di desain API yang kita gunakan baik proses/123/pause atau perhitungan/fibonacci -- adalah bahwa pada dasarnya tidak sesuai dengan SISANYA? Sejauh ini dari apa yang saya baca itu tidak tampak, selama ini Url yang ditemukan menggunakan HATEOAS dan jenis media yang standar.

Atau haruskah aku memilih untuk menempatkan tindakan di pesan serta menjawab di sini?

Catatan 1: Saya memahami bahwa adalah mungkin untuk ulangi beberapa contoh dalam hal kata benda. Namun saya merasa bahwa untuk specific cases kata benda tidak bekerja serta kata kerja lakukan. Jadi saya mencoba untuk memahami jika memiliki orang-orang verba akan segera unRESTful. Dan jika memang begitu, mengapa rekomendasi ini begitu ketat dan manfaat apa yang mungkin saya lewatkan dengan tidak mengikuti dalam kasus tersebut.

Catatan 2: Jawaban "SISANYA tidak memiliki kendala pada" akan menjadi jawaban yang valid (yang berarti bahwa pendekatan ini lebih Nyenyak). Jawaban "itu tergantung pada siapa anda bertanya," atau "itu adalah praktek terbaik" tidak benar-benar menjawab pertanyaan. Pertanyaan itu mengasumsikan konsep SISANYA ada sebagai yang didefinisikan dengan istilah umum ada dua orang yang dapat digunakan untuk merujuk ke set yang sama dari kendala. Jika asumsi itu sendiri adalah tidak benar dan formal diskusi berjalan-jalan, tidak ada artinya, jangan berkata begitu.

50 2013-10-28T23:29:43+00:00 4
 Community
Community
Pertanyaan edit 23 Mei 2017 в 11:47
Pemrograman
rest
 ccleve
ccleve
29 Oktober 2013 в 3:13
2013-10-29T03:13:35+00:00
Lebih
Sumber
Sunting
#22648206

Artikel ini memiliki beberapa tips yang baik: http://www.vinaysahni.com/best-practices-for-a-pragmatic-restful-api

Mengutip dari artikel:

Apa tentang tindakan yang don't masuk ke dunia dari operasi CRUD?

Ini adalah di mana hal-hal yang bisa mendapatkan fuzzy. Ada sejumlah pendekatan:

  1. Merestrukturisasi tindakan untuk tampil seperti bidang sumber daya. Ini bekerja jika tindakan doesn't mengambil parameter. Misalnya mengaktifkan tindakan dapat dipetakan ke boolean diaktifkan lapangan dan diperbarui melalui sebuah PATCH untuk sumber daya.
  1. Memperlakukannya seperti sub-sumber daya dengan Tenang prinsip-prinsip. Misalnya, GitHub's API memungkinkan anda bintang inti dengan MENEMPATKAN /gists/:id/bintang dan unstar dengan MENGHAPUS /gists/:id/bintang.
  1. Kadang-kadang anda benar-benar tidak punya cara untuk memetakan tindakan yang masuk akal Tenang struktur. Misalnya, multi-sumber daya pencarian doesn't benar-benar masuk akal untuk diterapkan ke sumber daya tertentu's akhir. Dalam hal ini kasus /search akan membuat paling masuk akal meskipun itu bukan't sebuah benda. Ini adalah OK - lakukan saja apa yang's benar dari perspektif API konsumen dan pastikan itu's didokumentasikan dengan jelas untuk menghindari kebingungan.

Saya secara pribadi seperti saran #2. Jika anda perlu untuk menunda sesuatu, apa yang kau berhenti? Jika itu's sebuah proses dengan nama, kemudian coba ini:

/process/{processName}/pause
28
0
Solution / Answer
Jonathan W
Jonathan W
29 Oktober 2013 в 5:22
2013-10-29T05:22:36+00:00
Lebih
Sumber
Sunting
#22648208

It's tidak benar-benar tentang kata benda vs verba; it's tentang apakah anda adalah:

  • mengidentifikasi sumber daya
  • memanipulasi sumber daya melalui representasi

Apa's sumber daya? Tangkas mendefinisikan thusly:

kunci abstraksi dari informasi di SISA adalah sumber daya. Informasi apapun yang bisa dinamai dapat sumber: dokumen atau gambar, sementara layanan (misalnya "hari ini's cuaca di Los Angeles"), koleksi sumber daya lainnya, non-virtual objek (misalnya orang), dan sebagainya. Dengan kata lain, konsep apapun yang mungkin menjadi target dari seorang penulis's hypertext reference harus cocok dalam definisi sumber daya. Sumber daya konseptual pemetaan untuk suatu set entitas, bukan entitas yang sesuai untuk pemetaan pada setiap titik tertentu dalam waktu.quot;

Sekarang, untuk pertanyaan anda. Anda dapat't hanya terlihat di URL dan berkata, "seperti-dan-seperti URL yang pada dasarnya tidak sesuai dengan SISANYA?" karena Url di SELURUH sistem aren't benar-benar penting. It's lebih penting bahwa Url proses/123/pause dan perhitungan/fibonacci mengidentifikasi sumber daya dengan definisi di atas. Jika mereka melakukannya, ada isn't ISTIRAHAT pelanggaran kendala. Jika mereka don't, anda're melanggar seragam antarmuka kendala untuk BERISTIRAHAT. Misalnya anda membuat saya percaya hal itu tidak sesuai dengan definisi sumber daya dan karena itu akan melanggar kendala ini.

Untuk menggambarkan apa sumber daya yang mungkin akan dalam sistem ini, anda bisa mengubah status dari suatu proses POSTing ke berhenti-proses sumber daya koleksi. Meskipun itu mungkin tidak biasa cara kerja dengan proses, it's tidak mendasar bertentangan dengan SISA gaya arsitektur.

Dalam kasus perhitungan, perhitungan sendiri mungkin menjadi sumber daya dan sumber daya yang mungkin terlihat seperti ini:

Request:
GET /calculations/5

Response:
{
  fibonacci: 5,
  prime-number: true,
  square-root: 2.23607
}

Meskipun lagi-lagi,'s yang agak tidak biasa konsep sumber daya. Saya kira sedikit lebih penggunaan yang khas mungkin terlihat seperti ini:

Request:
GET /stored-calculations/12381728 (note that URL is a random identifier)

Response:
{
  number: 5,
  fibonacci: 5,
  prime-number: true,
  square-root: 2.23607
}

meskipun mungkin anda'd ingin menyimpan informasi tambahan tentang sumber daya yang lain dari yang semata-mata perhitungan bahwa siapa pun dapat dilakukan dengan kalkulator...

Response:
{
  number: 5,
  fibonacci: 5,
  prime-number: true,
  square-root: 2.23607,
  last-accessed-date: 2013-10-28T00:00:00Z,
  number-of-retrievals-of-this-resource: 183
}
Jonathan W
Jonathan W
Jawaban edit 30 Oktober 2013 в 4:31
28
0
 Boj
Boj
29 Oktober 2013 в 12:08
2013-10-29T00:08:45+00:00
Lebih
Sumber
Sunting
#22648204

It's dianggap buruk berlatih menggunakan kata-kata kerja di REST API.

Ada's beberapa materi tentang JADI dan di tempat lain pada mengapa dan bagaimana untuk menghindari menggunakan kata kerja. Bahwa menjadi kata, ada banyak dari "REST" Api yang menggunakan kata kerja.

Untuk anda proses API, aku akan membuat sumber daya Proses yang memiliki sebuah negara, yang mana dapat dimodifikasi dengan MENEMPATKAN.

Misalkan DAPATKAN /proses/$id saat ini kembali:

{
   state: "PAUSED"
}

Kemudian anda MENEMPATKAN ini /proses/$id:

{
   state: "RUNNING"
}

yang membuat proses perubahan negara.

Dalam kasus Fibonacci, hanya memiliki sumber daya yang bernama fibonacci, dan menggunakan POST dengan parameter (misalnya n pertama n bilangan fibonacci) dalam tubuh, atau bahkan mungkin MENDAPATKAN dengan query di URL.

 Community
Community
Jawaban edit 23 Mei 2017 в 11:47
5
0
 sherb
sherb
29 Oktober 2013 в 3:22
2013-10-29T03:22:31+00:00
Lebih
Sumber
Sunting
#22648207

Metode HTTP is kata kerja: GET, PUT, POST, et cetera, sementara URL harus selalu mengacu pada kata benda (penerima tindakan). Anggap saja seperti ini: Akan two kata kerja dalam kalimat ini masuk akal? "MENDAPATKAN hitung" omong kosong, mana "MENDAPATKAN negara" baik "MENDAPATKAN proses" lebih baik ("negara" menjadi metadata untuk proses).

0
0
Tambahkan pertanyaan
Kategori
Semua
Teknologi
Budaya / Rekreasi
Kehidupan / Seni
Ilmu Pengetahuan
Profesional
Bisnis
Pengguna
Semua
Baru
Populer
1
Asilbek Qadamboyev
Terdaftar 2 hari yang lalu
2
Akshit Mehta
Terdaftar 4 hari yang lalu
3
me you
Terdaftar 1 minggu yang lalu
4
Никита иванов
Terdaftar 1 minggu yang lalu
5
Alex1976G_06
Terdaftar 1 minggu yang lalu
ID
KO
RU
© de-vraag 2022
Sumber
stackoverflow.com
di bawah lisensi cc by-sa 3.0 dengan atribusi