単純な文字列を使用すると、これでうまくいきます。しかし、Patch メソッドが単純な文字列を受け入れて返さない場合に、これを行う方法を知っている人はいますか? 以下の私の例を参照してください。Response の戻り値の型は、渡された引数の型とは異なります。どちらも単純型ではありません。200 の代わりに、常に 400 および/または ObjectPatch インスタンスを構築できないというメッセージが表示されます。そして、applyメソッドのみのインターフェースなので、それは理解しています。しかし、どういうわけか、実行時にそれから AttentionPatchResource オブジェクトを構築することができます。残念ながら、JerseyTest フレームワークを使用している場合はそうではありません。
@PATCH
@Path("/something")
@Produces(MediaType.APPLICATION_JSON)
@Consumes({ PatchMediaTypes.APPLICATION_MERGE_PATCH_JSON, PatchMediaTypes.APPLICATION_JSON_PATCH })
public Response updateAttention( //
@Parameter(schema = @Schema(implementation = AttentionPatchResource.class)) ObjectPatch patch) {
Attention attention = attentionService.find();
AttentionPatchResource patchResource = attentionAdapter.toPatchResource(attention);
AttentionPatchResource patchedResource = patch.apply(patchResource);
Attention patchedAttention = attentionAdapter.fromPatchResource(attention, patchedResource);
AttentionResource resource = attentionAdapter.toResource(patchedAttention);
return Response.status(Status.OK).entity(resource).build();
}