팀과 함께 API를 디자인하는 동안 우리가 보내준 복잡한 쿼리 매개 변수 중 개체, 개체 배열 등으로 인코딩해야하는 몇 가지 제안 된 쿼리 매개 변수에 대한 제안이 전달되었습니다. 경로 GET /resource/
및 쿼리 매개 변수에 필터 집합을 직접 적용하고 싶습니다. 이 필터의 목적 리터럴 구조는 백엔드에 싼 것, 뭔가GET 요청에 대해 인코딩 된 개체 쿼리 매개 변수 사용
filter: {
field1: {
contains: 'value',
notin: ['value2', 'value3']
},
field2: {
greaterThan: 10
}
}
처럼 같은 내부적으로 사용 express.js qs
노드 모듈로 쿼리 문자열 파서를 통해 URL에이 인코딩 될 것이다. 그러나 1) 클라이언트가 API와 연결하려고한다면 생성 된 URL을 읽기가 매우 어렵습니다. 인코딩 라이브러리를 사용해야하고 2) 필자가 이런 쿼리 매개 변수를 사용하는 것을 본 적이 없다고 생각합니다. 약간의 과장된 것이었고, 나는 그것이 어떻게 사용되고 있는지 그리고 그것이 정말로 안전한지에 대해 확신하지 못했습니다.
등의 검색어 매개 변수를 얻을 것이다 위의 예 :
GET /resource/?field1%5Bcontains%5D=value&field1%5Bnotin%5D%5B0%5D=value2&field1%5Bnotin%5D%5B1%5D=value3&field2%5BgreaterThan%5D=10
합니까 어떤 표준이나 모범 사례가 복잡한 객체 될 일이 URL 쿼리 매개 변수를 보내는이 연습?