토너먼트 및 일정에 대한 간단한 RESTful 서비스를 개발 중입니다. JSON 본문을 포함하는 POST 요청을 통해 토너먼트가 작성되면 토너먼트는에 삽입되어 BiMap
DAO 구현에서 다음과 같이 선언됩니다.
private BiMap<String, Tournament> tournaments = Maps.synchronizedBiMap(HashBiMap.create());
토너먼트가 작성되면 연관된 문자열 ID가 리턴되므로 사용자 는 해당 토너먼트에 대한 나중에 참조 할 수 있습니다. 다음 요청을 수행하여 새 토너먼트에서 정보를 다시 얻을 수 있습니다.
GET http://localhost:8080/eventscheduler/c15268ce-474a-49bd-a623-b0b865386f39
그러나 그러한 ID를 가진 토너먼트가 없으면 어떻게해야합니까? 지금까지 204 응답을 반환합니다. 글쎄, 저지는 null
그 방법 중 하나에서 돌아올 때 나를 위해 그것을 하고 있습니다. 위의 경로에 해당하는 방법입니다.
@Path("/{id}")
@GET
@Produces(MediaType.APPLICATION_JSON)
public Tournament getTournament(@PathParam("id") String id) {
Optional<Tournament> optTournament = tournamentDao.getTournament(id);
if (optTournament.isPresent())
return optTournament.get();
return null;
}
내 질문은 : 204: No Content
응답 을 반환해도 괜찮 404
습니까? 아니면 리소스를 찾지 못했기 때문에 응답 이어야 합니까?
404로 변경 해야하는 경우 명백한 질문 : 메소드 서명을 올바르게 변경해야합니까? 토너먼트 (유형 Tournament
)가 반환되지 않을 수 있으므로 메소드가 다르게 보일 것입니다. Response
대신 타입을 리턴 타입으로 사용해야 합니까?
{content: ''}
인 경우 204 응답은 부적절합니다.