我有一个创建包含以下内容的多部分文件的服务:
是否有可能使用YAML在提供的OpenAPI(扬鞭)定义这个自定义响应模型,?
我正在使用 Swagger UI 并希望删除标题部分下显示的 API 定义 URL(链接到 YAML 文件),如图片上突出显示的那样。这可以通过自定义 Swagger UI index.html页面来完成吗?
我定义了以下架构:
User:
type: object
required:
- id
- username
properties:
id:
type: integer
format: int32
readOnly: true
xml:
attribute: true
description: The user ID
username:
type: string
readOnly: true
description: The username
first_name:
type: string
description: Users First Name
last_name:
type: string
description: Users Last Name
avatar:
$ref: '#/components/schemas/Image'
example:
id: 10
username: jsmith
first_name: Jessica
last_name: Smith
avatar: image goes here
xml:
name: user
Run Code Online (Sandbox Code Playgroud)
效果很好。该GET /user/{id}调用会很好地显示示例数据。
我有第二个架构,可以创建上述架构的数组:
ArrayOfUsers:
type: array
items:
type: object
required:
- id
- …Run Code Online (Sandbox Code Playgroud) 我正在使用Swagger Codegen生成JavaScript客户端:
swagger-codegen generate -i http://localhost:8080/v2/api-docs \
-l javascript -o subscreasy-javascript-client
Run Code Online (Sandbox Code Playgroud)
生成的模块的名称是api-documentation.
如何配置swagger-codegen以便使用自定义名称生成JavaScript模块?
有用于更新文件定义的API吗?我正在寻找一种方法来自动保持Git和SwaggerHub中的项目同步,因此我想在每次合并时更新文件定义。可能吗?如何管理使项目和SwaggerHub定义自动保持同步?
我有一个使用 Swashbuckle(Swashbuckle.AspNetCore.SwaggerGen 3.0.0 和 Swashbuckle.AspNetCore.SwaggerUi 3.0.0)记录的 .NET Core 项目。我的目标是在带有类标题的 DIV 正下方添加一个自定义标签(即在服务名称下方但在端点上方)。
当我调查 Swagger UI 标记时,我看到有一个带有类swagger-ui的 DIV,我想将我的东西插入其中,可以这么说。我今天的设置是一个名为donkey.html的文件,当我访问 Swagger UI 的 URL 时会呈现该文件,如下所示。
...
<body>
<div id="swagger-ui"></div>
<div id="api_info"></div>
<!-- ... -->
<script src="./swagger-ui-bundle.js"></script>
<script src="./swagger-ui-standalone-preset.js"></script>
<script type="text/javascript">
(function () { ... })();
</script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
我已经用谷歌搜索了几个小时,并阅读了很多关于 OpenAPI 和 YAML 的内容。然而,我得到的印象是它需要对 Swagger UI 项目进行全面重建,而我目前的目标是实现一个更简单的任务。
有没有办法插入名为api_info的 DIV,以便它作为swagger_ui的一部分呈现,而无需重新生成整个 Swagger UI 项目?
我试图增加基本布局,如图所示,但结果很糟糕,结果比我的目标要复杂一些。也许这是创建模块的唯一可行方法,在这种情况下我会考虑它,但在这种情况下这是最后的资源。
我正在使用 SwaggerHub 和 OpenAPI 3.0.0。我在 SwaggerHub 中有两个 API。
第一个有以下访问链接:https :
//app.swaggerhub.com/apis/myapipath/1.0.0并包含一个名为components/schemas/ApiOffer.
在第二个 API 中,我希望该属性offer成为$ref该定义的一个。我用:
components:
schemas:
Offerers:
type: object
required:
- offererId
- overview
properties:
offererId:
$ref: '#/components/schemas/OfferersId'
overview:
$ref: '#/components/schemas/OfferersOverview'
offer:
$ref: 'https://app.swaggerhub.com/apis/myapipath/1.0.0#/components/schemas/ApiOffer'
Run Code Online (Sandbox Code Playgroud)
但得到以下错误:
“无法解析引用,因为:无法解析指针:文档中不存在 /components/schemas/ApiOffer”
即使/components/schemas/ApiOffer定义存在。
如何更正我的引用以使其指向其他 API?
我有一个在 .NetCore 3.1 中创建的 API,并使用 Swashbuckle 启用了 Swagger(OAS3)。默认情况下,当我的应用程序启动时,如果使用此 URL 显示 Swagger 页面:
http://{port}/swagger.index.html
Run Code Online (Sandbox Code Playgroud)
我想自定义 Swagger URL,以便它包含正在运行的应用程序的名称。我这样做的原因是我在 AWS Fargate 中运行 Nginx 时使用基于路径的路由。
我将在 Fargate 任务中运行多个 API 容器,Nginx 将接收来自应用程序负载均衡器和路径(例如 /api/app1)的 REST 请求,它将请求路由到目标应用程序的正确容器端口.
例如,我有三个应用程序:端口 5000 上的 App1、端口 5001 上的 App2 和端口 5003 上的 App3。
如果用户向https://api/app1发出请求,Nginx 将检测路径并将请求转发到端口 5000,这是 App1 的容器端口。
但是,为了确保出现正确的 Swagger 页面,我需要在 Swagger 的 URL 中添加“api/App1”,以便 Nginx 将请求转发到正确的容器。在本例中,它是 App1。
换句话说,我希望我的 Swagger URL 看起来像这样:
https://api/app1/swagger/index.html
Run Code Online (Sandbox Code Playgroud)
我试过的
在我的 Startup.cs 文件中,我添加了以下内容:
// Define prefix for application
private readonly string baseApplicationRoute = "api/app1";
// Enable …Run Code Online (Sandbox Code Playgroud) 您能帮我将 Postman 文件转换为 openAPI 3.0 并将它们下载到机器吗?
这必须在 Node.js 中实现,我对它非常陌生。
谢谢。
这是我的 Startup.cs 文件
这是我在 Startup.cs 中的 ConfigureService 方法我已经完全根据文档对其进行了修改但它不起作用我已经删除了启动网址所以它只是在端口上并且我没有设置任何路由我在他的帮助下遇到了麻烦受到赞赏
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();
services.AddControllers();
services.ConnectionToACQEs(Configuration);
services.AddAutoMapper(typeof(Startup));
// Register the Swagger generator, defining 1 or more Swagger documents
services.AddSwaggerGen(c =>
{
c.SwaggerDoc("v1", new OpenApiInfo
{
Version = "v1",
Title = "ToDo API",
Description = "A simple example ASP.NET Core Web API",
TermsOfService = new Uri("https://example.com/terms"),
Contact = new OpenApiContact
{
Name = "Nicky Liu",
Email = "nicky@zedotech.com",
Url = new Uri("https://www.zedotech.com"),
},
License = new OpenApiLicense
{
Name = "Use …Run Code Online (Sandbox Code Playgroud) swagger ×7
openapi ×5
c# ×2
swagger-ui ×2
swaggerhub ×2
swashbuckle ×2
asp.net ×1
asp.net-core ×1
html ×1
multipart ×1
node.js ×1
postman ×1