새로운 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
.