내 서비스 중 하나에 대해 Jersey 서비스 클라이언트에서 작업 중이며 클라이언트의 put을 통해 null 엔티티를 전달하는 가장 좋은 방법을 결정하는 데 문제가 있습니다. null put 메소드가있는 저지 클라이언트
@PUT
@Path("/rule/disable/key/{key}")
@Produces(MediaType.APPLICATION_JSON)
public Response disableRuleByKey(@PathParam("key") String key)
throws Exception {
try {
DAL.getWriter().disableRuleByKey(key);
return Response.ok().build();
} catch (BlahException bla) {
throw de;
}
는 기본적으로 모든 방법은 백엔드에서 사용하는 응용 프로그램의 다른 부분에 대한 토글 플립입니다 않습니다 사물의 서비스 측면에서이 내 엔드 포인트입니다. 나는 put이 여기에 쓸 올바른 호출인지 확신하지 못합니다. (하지만 이것은 팀 동료가 작성했습니다). JSON 페이로드조차 없다는 것을 알고 있습니다.
어쨌든, 클라이언트 측에서 나는 extends
를 통해 이용할 수 있도록 모든 클라이언트에 대해이 일반적인 putItem()
코드가하십시오 JSON 페이로드를 사용하여 데이터베이스 벌금에
public static <T> boolean putItem(Client client, String uri, T item)
throws InterruptedException,
ExecutionException {
Invocation putConfig = client.target(uri).request()
.buildPut(Entity.entity(item, MediaType.APPLICATION_JSON));
Future<Response> asyncResponse = putConfig.submit();
Response response = asyncResponse.get();
return response.getStatus() == Status.OK.getStatusCode();
}
이 PUT
의, 그러나 위의 방법부터 특별히 페이로드를 가지고 있지 않은데 나는 최선의 행동이 무엇인지 궁금해하고있었습니다. 호출의 .buildPut()
을 수정하면 null
이 페이로드를 전달하지 않기 때문에 괜찮은가요?
나는 엔드 포인트를 수정하는 것에 대해서도 개방적이지만 이것은 현재 가지고있는 것이므로이 값을 백엔드에 보내는 가장 좋은 방법을 알 수 없다. 키를 @PathParam
으로 전달하는 대신 JSON 객체를 사용하도록 엔드 포인트를 수정해야합니까?
차갑다. 그렇다면 엔드 포인트가'@PathParam (String key)'를 엄격하게 사용하는 대신'disableRuleByKey (String key)'와 그에 상응하는 JSON 페이로드 만 있으면됩니까? – erp
@erp 예. URL을 사용하여 자원 및 서버에 자원의 새 표현을 보내는 요청의 페이로드를 찾으십시오. –