私たちは新しいREST APIをローンチしており、入力パラメーターをどのようにフォーマットするかについてのベストプラクティスに関するコミュニティの意見を求めていました。
現在、APIはJSON中心です(JSONのみを返します)。XMLを返す必要があるかどうかの議論は別の問題です。
私たちのAPI出力はJSON中心であるため、私たちは入力が少しJSON中心であるという道をたどっています。
たとえば、現在複数の製品を同時にプルできるいくつかの製品の詳細を取得するには、次のようにします。
http://our.api.com/Product?id=["101404","7267261"]
これを次のように簡略化する必要があります。
http://our.api.com/Product?id=101404,7267261
それともJSON入力が便利ですか?もっと痛い?
両方のスタイルを受け入れたいと思うかもしれませんが、その柔軟性は実際により多くの混乱と頭痛(メンテナンス性、ドキュメントなど)を引き起こしますか?
より複雑なケースは、より複雑な入力を提供したい場合です。たとえば、検索で複数のフィルターを許可する場合:
http://our.api.com/Search?term=pumas&filters={"productType":["Clothing","Bags"],"color":["Black","Red"]}
フィルタータイプ(productTypeやcolorなど)をリクエスト名として次のように指定する必要はありません。
http://our.api.com/Search?term=pumas&productType=["Clothing","Bags"]&color=["Black","Red"]
すべてのフィルター入力をグループ化したかったからです。
結局、これは本当に重要ですか?JSONのユーティリティが非常に多く存在するため、入力タイプはそれほど重要ではない可能性があります。
APIへのAJAX呼び出しを行うJavaScriptクライアントは、JSON入力を理解して、より簡単に生活できるようになることを知っています。
[]
構文が常にサポートされているわけではないことに注意してください(一般的であるにもかかわらず、URI仕様に違反している場合もあります)。一部のHTTPサーバーとプログラミング言語は、名前を繰り返すだけを好むでしょう(例:)productType=value1&productType=value2
。