여러 IoT 장치의 데이터를 처리하는 서버에있는 REST API로 작업하고 있습니다.
내 임무는 API를 사용하여 서버를 쿼리하여 해당 장치에 대한 특정 성능 정보를 수집하는 것입니다.
어떤 경우에는 사용 가능한 장치 및 해당 식별자 목록을 얻은 다음 나중에 해당 식별자 (GUID)를 사용하여 자세한 내용을 서버에 쿼리합니다.
서버가 500 Internal Server Error
해당 ID 중 하나에 대한 쿼리를 반환 합니다. 내 응용 프로그램에서 예외가 발생하고 오류에 대한 세부 정보가 표시되지 않습니다. Postman으로 응답을 자세히 살펴보면 서버가 다음을 포함하는 본문에서 JSON을 반환 한 것을 알 수 있습니다.
errorMessage: "This ID does not exist"
.
서버가 ID를 제공했다는 사실을 무시하십시오. 이는 개발자에게는 별개의 문제입니다.
REST API 500 Internal Server Error
가 존재하지 않는 객체를 쿼리가 참조한다고보고 하기 위해를 반환해야합니까 ? 내 생각에 HTTP 응답 코드는 API의 내부 메커니즘이 아닌 REST 호출의 상태를 엄격하게 참조해야합니다. 200 OK
오류와 설명이 포함 된 응답으로 문제의 API에 독점적 인 것으로 기대합니다 .
REST 호출이 구성되는 방식에 따라 예상되는 차이가 있습니다.
다음 예를 고려하십시오.
http://example.com/restapi/deviceinfo?id=123
http://example.com/restapi/device/123/info
첫 번째 경우, 장치 ID는 GET 변수로 전달됩니다. 404 또는 500은 경로 ( /restapi/deviceinfo
)를 찾을 수 없거나 서버 오류가 발생 했음을 나타냅니다 .
두 번째 경우, 장치 ID는 URL의 일부입니다. 나는에 대해 더 많이 이해 404 Not Found
하고 있지만 여전히 경로의 어느 부분이 변수 대 끝점으로 해석되는지에 근거하여 논쟁 할 수 있습니다.