İçerik uzlaşımı, tek bir adresin birden çok temsil sunabilmesinin yoludur. İstemci neyi kabul edebileceğini bildirir; sunucu üretebildikleri arasından seçer; yanıt hangisinin seçildiğini söyler. Kaynak her iki durumda da aynıdır — değişen yalnızca sunuluş biçimidir.
İstemci istediği ortam türlerini Accept ile, gerekirse q değerleriyle ağırlıklandırarak yollar. Sunucu gerçekte ne gönderdiğini Content-Type ile bildirir ve Vary: Accept göndermelidir, yoksa önbellek CSV isteyen bir istemciye JSON servis eder. İstemcinin kabul edeceği hiçbir şey üretilemiyorsa cevap 406 Not Acceptable’dır. Aynanın öbür yüzü — istemcinin sunucunun ayrıştıramayacağı bir türde gövde göndermesi — 415 Unsupported Media Type’tır.
Accept başlığının tavsiye niteliğinde olduğu ve yok sayılabileceği sanılır. Pek çok API onu yok sayıp hep JSON döner; bu, bir istemcinin gerçekten başka bir şeye ihtiyacı olana kadar çalışır, sonra sessizce 200 ile JSON döner. Karşılanamayan bir Accept başlığının dürüst cevabı 406’dır.
Protocol Lab bunu gerçekten yapar: `GET /protocol/v1/export/documents` Accept başlığınıza göre JSON, CSV veya XML üretir, seçtiğini Content-Type ile bildirir, ve üretemediği bir şey istediğinizde sessizce geri düşmek yerine 406 döner.
Tüm sözlük maddeleri · Test teknikleri · 39 mock REST API’nin tamamı
Last updated