Yeni bir REST API'sini başlatıyoruz ve girdi parametrelerini nasıl biçimlendirmemiz gerektiği konusunda en iyi uygulamalar hakkında bazı topluluk girdileri istedim:
Şu anda API'mız çok JSON merkezli (yalnızca JSON döndürüyor). XML döndürmek isteyip istemediğimize dair tartışma ayrı bir konudur.
API çıktımız JSON merkezli olduğundan, girdilerimizin biraz JSON merkezli olduğu ve bazılarının genel olarak garip olabileceğini düşündüğüm bir yolda ilerliyoruz.
Örneğin, şu anda sahip olduğumuz bir kerede birden fazla ürünün çekilebileceği birkaç ürün ayrıntısı almak için:
http://our.api.com/Product?id=["101404","7267261"]
Bunu basitleştirmeli miyiz:
http://our.api.com/Product?id=101404,7267261
Yoksa JSON girişi kullanışlı mı? Daha fazla acı mı?
Her iki stili de kabul etmek isteyebiliriz, ancak bu esneklik aslında daha fazla karışıklığa ve kafa ağrılarına neden olur mu (sürdürülebilirlik, dokümantasyon, vb.)?
Daha karmaşık bir durum, daha karmaşık girdiler sunmak istediğimiz zamandır. Örneğin, aramada birden fazla filtreye izin vermek istiyorsak:
http://our.api.com/Search?term=pumas&filters={"productType":["Clothing","Bags"],"color":["Black","Red"]}
Filtre türlerini (ör. ProductType ve color) aşağıdaki gibi istek adları olarak koymak istemiyoruz:
http://our.api.com/Search?term=pumas&productType=["Clothing","Bags"]&color=["Black","Red"]
Çünkü tüm filtre girdilerini birlikte gruplandırmak istedik.
Sonunda, bu gerçekten önemli mi? Giriş türünün o kadar da önemli olmadığı çok sayıda JSON aracı olabilir.
API istemcilerini AJAX aramaları yapan JavaScript müşterilerimizin hayatlarını kolaylaştırmak için JSON girdilerini takdir edebileceğini biliyorum.
[]
Sözdiziminin her zaman desteklenmediğini (ve yaygın olmasına rağmen, URI spesifikasyonunu bile ihlal edebileceğini) takip etmek ve not etmek istedim. Bazı HTTP sunucuları ve programlama dilleri sadece adı tekrar etmeyi tercih edecektir (örneğinproductType=value1&productType=value2
).