我们有一个用Java编写的rest API(在Wildfly中托管).我们的服务在kubernetes(GKE)运行.我们希望利用Cloud Endpoints来跟踪API的使用情况和响应能力.API不是新的,我们已经提供与其交互多年的软件.它也很大(成千上万的公共方法).我们有API的Swagger文档,没有验证错误.当我尝试使用以下方式部署Swagger:
gcloud beta service-management deploy swagger.yaml
Run Code Online (Sandbox Code Playgroud)
它没有成功.我得到以下错误重复237次:
ERROR: unknown location: http: body field path 'body' must be a non-repeated message.
Run Code Online (Sandbox Code Playgroud)
我已经将它跟踪到237个方法,其中包括一个body参数中的json数组.在我们的API中,这些是接受或返回对象列表的方法.有什么方法可以让我接受service-management deploy吗?更改我们的API不是一个选项,但我们真的希望能够使用端点.
例如,此方法签名:
@PUT
@Path ("/foobars/undelete")
@Consumes (MediaType.APPLICATION_JSON)
@Produces (MediaType.APPLICATION_JSON)
@ApiOperation (value = "Undelete foobars")
@ApiResponses (value =
{
@ApiResponse (
code = 200,
message = "foobars undeleted",
response = FooBar.class,
responseContainer = "List"
) , @ApiResponse (
code = 206,
message = "Not all foobars undeleted",
response = FooBar.class,
responseContainer = "List"
) , @ApiResponse …Run Code Online (Sandbox Code Playgroud)