Pertanyaan Bagaimana cara membuat jenis media kustom (application / vnd) untuk layanan web RESTful?


Saya bermain dengan REST sekarang dan berpikir saya benar menerapkan HATEOAS hanya untuk mendapatkan semua konsep dengan benar.

Untuk itu saya ingin membuat jenis media saya sendiri (application/vnd[...]+xml dan application/vnd[...]+json).

Satu pertanyaan pertama: Apakah jenis media menentukan kontrak antara server dan klien saya?

Jenis media akan menentukan format pesan saya sehingga saya perlu menambahkan skema XML dan skema JSON untuk pergi dengan jenis media baru (sehingga klien REST tahu apa yang datang dalam pesan dan apa yang harus dikirim kembali).

Saya telah melakukan beberapa penelitian di web tetapi detail tentang bagaimana hal ini hilang. Apakah hanya melibatkan penulisan spesifikasi / dokumentasi lengkap atau apakah ada beberapa langkah teknis untuk diimplementasikan? (Saya tidak harus mendaftar dengan IANA, kan?)

Bagaimana cara yang baru - berfungsi penuh - application/vnd jenis media dibuat? dan apa yang perlu Anda jaga agar klien dapat menggunakannya dengan benar?


32
2018-02-04 11:19


asal


Jawaban:


@JohnDoDo

Satu pertanyaan pertama: Apakah jenis media menentukan kontrak antara server dan klien saya?

Ya, jenis media adalah salah satu bagian dari kontrak. Kontrak dalam REST API tidak statis seperti SOAP (yaitu. WSDL). Kontrak didefinisikan oleh kombinasi protokol yang mendasari (yaitu. HTTP), URI dan Jenis Media (tidak dilarang untuk menggunakan beberapa jenis media bersama-sama). Jenis media mendefinisikan model data, model pemrosesan, kontrol hypermedia (yaitu tautan beranotasi, formulir masukan, dll ...) dan dukungan untuk menyertakan informasi spesifik aplikasi tambahan yang dijelaskan oleh hubungan tautan, nama elemen, id, nama kelas, dll ...

Jenis media akan menentukan format pesan saya sehingga saya perlu menambahkan skema XML dan skema JSON untuk pergi dengan jenis media baru (sehingga klien REST tahu apa yang datang dalam pesan dan apa yang harus dikirim kembali).

Anda hanya perlu menentukan skema generik yang mencakup struktur dokumen. Anda tidak perlu menentukan skema terpisah untuk pesan tertentu. Pesan Anda harus dalam struktur yang ditentukan oleh jenis media.

Bagaimana bisa ada aplikasi yang baru - berfungsi penuh - aplikasi / vnd media? dan apa yang perlu Anda jaga agar klien dapat menggunakannya dengan benar?

  1. Jelaskan itu (yaitu spesifikasi format penulisan);
  2. Daftar dengan IANA: http://www.iana.org/cgi-bin/mediatypes.pl mendaftarkan jenis media di bawah vnd. * pohon membutuhkan waktu hampir satu minggu untuk mendaftar.

25
2018-02-12 15:19



Silahkan lihat Hipermedia API yang Hebat dalam Tiga Langkah Mudah

Jenis media Anda harus menggambarkan tipe data, tetapi saya tidak akan melakukannya dengan skema XML. Jika Anda menggunakan skema XML, saya sangat menyarankan Anda menggunakan a Strategi versi longgarJika tidak, Anda akan menemukan bahwa Anda memerlukan jenis media baru setiap kali Anda ingin menambahkan elemen atau atribut baru.


3
2018-02-04 21:57



Apakah jenis media menentukan kontrak antara server dan klien saya?

Tidak, jenis media hanya menentukan jenis (mis. Aplikasi) dan sub-jenis (misalnya json) dari data

Bagaimana bisa ada aplikasi yang baru - berfungsi penuh - aplikasi / vnd media? dan apa yang perlu Anda jaga agar klien dapat menggunakannya dengan benar? (http://www.ietf.org/rfc/rfc2046.txt?number=2046)

Jika Anda memutuskan untuk membuat sub-jenis media khusus sendiri dan mengharapkannya untuk digunakan secara luas, itu harus didaftarkan dengan IANA (http://www.iana.org/assignments/media-types). Ini adalah cara standar untuk membagikan informasi out-of-band dengan klien potensial.


1
2018-02-11 17:02