これらのパスパラメーターを使用してAPIを実装する必要があります。
@Path("/job/{param1}/{optional1}/{optional2}/{param2}")
オプションで2番目と3番目のパラメーターを使用できますか?したがって、クライアントはこれらを渡す必要はありませんが、最初と最後を渡す必要があります。
これが不可能な場合、この方法でパラメーターを再配置することをお勧めしますか?
@Path("/job/{param1}/{param2}/{optional1}/{optional2}")
オプションのパラメータを提供するには?
RESTリクエストで終わるパス全体を一致させることができます
@Path("/location/{locationId}{path:.*}")
public Response getLocation(
@PathParam("locationId") int locationId,
@PathParam("path") String path) {
//your code
}
これで、パス変数にはlocation/{locationId}
の後のパス全体が含まれます
正規表現を使用して、パスをオプションにすることもできます。
@Path("/user/{id}{format:(/format/[^/]+?)?}{encoding:(/encoding/[^/]+?)?}")
public Response getUser(
@PathParam("id") int id,
@PathParam("format") String format,
@PathParam("encoding") String encoding) {
//your code
}
これで、フォーマットとエンコードがオプションになります。空になる値は指定しません。
オプションのパスパラメータをクエリパラメータに変える方が簡単な場合があります。その後、必要に応じて@DefaultValue
を使用できます。
@GET @Path("/job/{param1}/{param2}")
public Response method(@PathParam("param1") String param1,
@PathParam("param2") String param2,
@QueryParam("optional1") String optional1,
@QueryParam("optional2") @DefaultValue("default") String optional2) {
...
}
その後、/job/one/two?optional1=test
を使用して呼び出して、必要なオプションパラメータのみを渡します。
パラメーターを再配置して、次を試してください。
@Path("/job/{param1}/{param2}{optional1 : (/optional1)?}{optional2 : (/optional2)?}")
public Response myMethod(@PathParam("param1") String param1,
@PathParam("param2") String param2,
@PathParam("optional1") String optional1,
@PathParam("optional2") String optional2) {
...
}