swagger - Spring REST Greeting 服务的简单招摇文档
问题描述
我使用Spring REST 服务实现来学习 Swagger。
GET 服务 - http://localhost:8080/greeting?name=Betlista 返回
{
"id":5,
"content":"Hello, Betlista!"
}
所以我为 Swagger 创建了 YAML 文件:
swagger: "2.0"
info:
version: "0.0.1-SNAPSHOT"
title: "Spring REST"
host: "localhost:8080"
basePath: "/"
tags:
- name: "Greeting"
schemes:
- "http"
paths:
/greeting:
get:
operationId: "greeting"
produces:
- "application/json"
parameters:
- name: "name"
in: "query"
required: false
type: "string"
responses:
"200":
description: "successful operation"
schema:
$ref: "#/definitions/GreetingResponse"
definitions:
GreetingResponse:
type: "object"
properties:
id:
type: "integer"
content:
type: "string"
问题是,当我尝试使用“试用”按钮执行它时。
似乎(来自开发者工具中 Chrome 的网络选项卡)好像没有响应:
...虽然浏览器中的常规调用工作正常
编辑:正如我在评论中提到的,我验证了由 swagger 生成的 curl 并且它按预期工作 -curl -X GET "http://localhost:8080/greeting?name=Betlista" -H "accept: application/json"
目前我正在研究 CORS 主题(这对我来说毫无意义,因为文档和服务都在本地主机上),我在 Chrome 控制台中看到:
解决方案
这实际上是服务的问题,而不是 Swagger 编辑器的问题。
我仍在寻找解决方案,此处描述为:
CORS 使用特殊的 HTTP 标头来允许跨域请求。“试用”功能需要 API 响应中的以下标头:
Access-Control-Allow-Origin: https://host.from.which.the.request.came Vary: Origin Access-Control-Allow-Credentials: true Access-Control-Expose-Headers: ResponseHeader1, ResponseHeader2, ...
我尝试使用带有 CORS 的 Spring REST 服务,它curl -I http://localhost:8080/greeting?name=Betlista
返回:
HTTP/1.1 200
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 37
Date: Mon, 02 Nov 2020 13:42:15 GMT
但这仍然不起作用......
正如我所说,这不是 Swagger Editor 的问题,而是服务的问题。
CORS 检查可以在 Chrome 中关闭,chrome.exe --disable-web-security --user-data-dir=/tmp
如此处所述,这当然不推荐,所以我认为这只是一种解决方法。
我最后使用的是这个 - https://stackoverflow.com/a/47022289/384674
编辑:后来我使用了 - https://stackoverflow.com/a/40300363/384674
推荐阅读
- python - 如何在不使用事件的情况下使用 Discord.py 发表评论?
- r - 编写自定义函数时将列名传递给 dplyr::coalesce()
- java - 如何在 Java 中将每个标签与其 Textfield 旁边的对齐?
- python - AttributeError:模块“asyncio.coroutines”没有属性“_is_coroutine”
- ios - Core Data 使用 Canvas 预览的要求是什么 - SwiftUI
- c# - Newtonsoft.Json - 反序列化自定义类型时抛出 DeserializeObject:将值“somestring”转换为类型 CustomType 时出错
- sql - 在数据库“天气”上执行 SQL 查询时出错:“(”附近:语法错误
- c# - .NET Core/5 IConfiguration 在 Raspberry Pi 4 4GB 上的 Ubuntu 20.10 x64 上不起作用
- c# - 如何使用 C# 在 Excel 上定位特定工作表
- c# - 无法加载文件或程序集 Microsoft.Extensions.DependencyInjection.Abstractions,版本 = 5.0.0.0