微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Spring REST Greeting服务的简单介绍文档

如何解决Spring REST Greeting服务的简单介绍文档

我用Spring REST service implementation学习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的“网络”标签中)似乎没有响应:

Not working call from Swagger editor

...在浏览器中正常调用效果很好

Working from Chrome

编辑:正如我在评论中提到的那样,我验证了摇摇晃晃产生的卷曲,并且可以按预期工作-curl -X GET "http://localhost:8080/greeting?name=Betlista" -H "accept: application/json"

此刻,我正在研究CORS主题(由于文档和服务都在本地主机上,这对我来说没有意义),我在Chrome控制台中看到以下内容

CORS error

解决方法

这实际上是服务的问题,而不是Swagger编辑器的问题。

我仍在寻找解决方案,其描述为here

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,...

我尝试使用Spring REST sevice with CORS,它在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编辑器问题,而是服务问题。

可以按照here中所述chrome.exe --disable-web-security --user-data-dir=/tmp在Chrome中关闭CORS检查,这当然是不推荐的,因此我认为这只是一种解决方法。

我最后使用的是-https://stackoverflow.com/a/47022289/384674

编辑:后来我用了-https://stackoverflow.com/a/40300363/384674

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。