- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
当我尝试使用 gcloud service-management deploy openapi.json
部署我的 Cloud Endpoints Framework api 时,我收到许多类似于以下内容的错误:
ERROR: openapi.json: Operation 'get' in path '/sd/v1/groups/{id}': operationId 'SdGet' has duplicate entry
检查生成的 openapi.json
文件,我发现它有很多重复的 operationId
。例如,注意这两个都使用 SdGet
:
{
...
"paths": {
"/sd/v1/feeds/{id}": {
"get": {
"operationId": "SdGet",
...
}
},
"/sd/v1/groups/{id}": {
"get": {
"operationId": "SdGet",
...
}
}
}
}
我的后端是用 Java 编写的。我有一个使用继承的多类 API,这似乎符合 the docs 中的建议。 .以下是此示例的相关部分:
@Api(name = "sd", ...)
public class Endpoints { ... }
public class FeedEndpoints extends Endpoints {
@ApiMethod(
path = "feeds/{id}",
name = "feeds.get",
httpMethod = HttpMethod.GET)
public Feed get(...) { ... }
...
}
public class GroupEndpoints extends Endpoints {
@ApiMethod(
path = "groups/{id}",
name = "groups.get",
httpMethod = HttpMethod.GET)
public Group get(...) { ... }
...
}
为了生成 openapi.json
,我在 Google 的 getting started 之后对我的配置进行了建模。指导。所以在 pom.xml
中我有这样的东西,它让我用命令 mvn exec:java -DGetSwaggerDoc
生成它:
<profiles>
<profile>
<id>GetSwaggerDoc</id>
...
<build>
<plugins>
<plugin>
...
<configuration>
...
<arguments>
<argument>get-swagger-doc</argument>
<argument>--hostname=echo-api.endpoints.${endpoints.project.id}.cloud.goog</argument>
<argument>--war=target/blah-1.0-SNAPSHOT</argument>
<argument>blah.FeedEndpoints</argument>
<argument>blah.GroupEndpoints</argument>
...
</arguments>
</configuration>
...
</plugin>
</plugins>
</build>
</profile>
</profiles>
我做错了什么?我怎样才能以不同的方式定义事物,以便生成的 api 规范不使用重复的 id?
最佳答案
@saiyr 告诉我这是框架中的一个错误(请参阅问题的评论),所以我提交了一份报告 here .现在我通过将所有端点类中的 API 方法重命名为唯一来解决这个问题,如下所示:
@Api(...)
public class Endpoints { ... }
public class FeedEndpoints extends Endpoints {
@ApiMethod(...)
public Feed getFeed(...) { ... }
...
}
public class GroupEndpoints extends Endpoints {
@ApiMethod(...)
public Group getGroup(...) { ... }
...
}
关于google-app-engine - 使用多类 API 重复 `operationId`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44345177/
我正在实现自定义 ApplicationInsights 记录器,并且能够在跟踪、异常和请求等写入位置写入所有日志,但跟踪和异常中的 OperationId 为空。 昨天我使用相同的代码并在所有表中获
我需要知道是否可以设置自定义 operationid 或命名约定,我的意思是我知道可以按照生成 operationId 的方式覆盖操作过滤器 https://azure.microsoft.com/e
我正在使用 AutoRest 从 swagger.json 生成 api 的客户端 输出是 AutoRest code generation utility [cli version: 3.0.618
我正在使用 Swagger 记录我的 Django API。当我生成我的 Openapi 架构时,为我的每个路径添加了带有附加参数 {format} 的第二条路由,具有相同的操作 ID作为“正确”路线
当我尝试使用 gcloud service-management deploy openapi.json 部署我的 Cloud Endpoints Framework api 时,我收到许多类似于以下
我的问题是: 在我的场景中注入(inject)自定义关联/操作 ID 的正确/更好的方法是什么,该方法不会导致内存泄漏,并且可以正确使用并显示在 Azure 门户上? 以下是我的场景的具体细节: 我有
我正在使用 aspnet core 2.2 创建 Restful API。我有一个标准设置,其中每个模型都有自己的 Controller ,带有 GET 和 POST 操作。我正在使用 Swashbu
在为现有的 500 多个 Controller 和相应方法创建 Angular API 服务代理时,我们试图覆盖 Swashbuckle/Swagger IO CodeGen 命名约定。 目前正在将
我如何设置 Swagger operationId Asp.Net Core 2.1 项目中的属性?根据 this我应该使用的帖子 SwaggerOperationAttribute但我在 Swash
我是一名优秀的程序员,十分优秀!