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

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...