如何摆脱 swagger 中的错误 - 没有定义的 post 操作。", "allowedMethods": [ > "GET" ] }
How to get rid of the error in swagger - there is no defined post operation.", "allowedMethods": [ > "GET" ] }
我 运行 大摇大摆地使用以下代码并在执行 POST 操作时遇到错误..
swagger: "2.0"
info:
version: "0.0.1"
title: Hello World App
# during dev, should point to your local machine
host: localhost:10010
# basePath prefixes all resource paths
basePath: /
#
schemes:
# tip: remove http to make production-grade
- http
- https
# format of bodies a client can send (Content-Type)
consumes:
- application/json
# format of the responses to the client (Accepts)
produces:
- application/json
paths:
/hello:
# binds a127 app logic to a route
x-swagger-router-controller: hello_world
get:
description: Returns 'Hello' to the caller
# used as the method name of the controller
operationId: hello
parameters:
- name: name
in: query
description: The name of the person to whom to say hello
required: false
type: string
responses:
"200":
description: Success
schema:
# a pointer to a definition
$ref: "#/definitions/HelloWorldResponse"
# responses may fall through to errors
default:
description: Error
schema:
$ref: "#/definitions/ErrorResponse"
/postpath:
x-swagger-router-controller: hello_world
post:
description: add a new movie to the list
# movie info to be stored
operationId: postpath
parameters:
- name: title
description: Movie properties
in: body
required: true
schema:
$ref: "#/definitions/Movie"
responses:
"200":
description: Success
schema:
$ref: "#/definitions/GeneralResponse"
default:
description: Error
schema:
$ref: "#/definitions/ErrorResponse"
/swagger:
x-swagger-pipe: swagger_raw
# complex objects have schema definitions
definitions:
HelloWorldResponse:
required:
- message
properties:
message:
type: string
ErrorResponse:
required:
- message
properties:
message:
type: string
Movie:
type: object
properties:
title:
type: string
description: task object name
year:
type: number
description: task description
required:
- title
- year
GeneralResponse:
type: object
properties:
success:
type: number
description: returns 1 if successful
description:
type: string
description: a short comment
required:
- success
- description
下面是后面的hello_world.js。
'use strict';
var util = require('util');
module.exports = {
hello: hello, postpath: postpath
};
function hello(req, res) {
// variables defined in the Swagger document can be referenced using req.swagger.params.{parameter_name}
var name = req.swagger.params.name.value || 'stranger';
var hello = util.format('Hello, %s!', name, 'how are you?');
// this sends back a JSON response which is a single string
res.json(hello);
}
function postpath(req, res) {
var isOpen = true; // Details omitted
var doorStatus = isOpen;
res.json('Test');
}
我收到方法不允许的异常..
以下是堆栈跟踪..
{ "message": "Route defined in Swagger specification (/hello) but
there is no defined post operation.", "allowedMethods": [
"GET" ] }
您定义了这个:
paths:
/hello:
get:
但您还想定义 POST:
paths:
/hello:
get:
- something
post:
- something else
我 运行 大摇大摆地使用以下代码并在执行 POST 操作时遇到错误..
swagger: "2.0"
info:
version: "0.0.1"
title: Hello World App
# during dev, should point to your local machine
host: localhost:10010
# basePath prefixes all resource paths
basePath: /
#
schemes:
# tip: remove http to make production-grade
- http
- https
# format of bodies a client can send (Content-Type)
consumes:
- application/json
# format of the responses to the client (Accepts)
produces:
- application/json
paths:
/hello:
# binds a127 app logic to a route
x-swagger-router-controller: hello_world
get:
description: Returns 'Hello' to the caller
# used as the method name of the controller
operationId: hello
parameters:
- name: name
in: query
description: The name of the person to whom to say hello
required: false
type: string
responses:
"200":
description: Success
schema:
# a pointer to a definition
$ref: "#/definitions/HelloWorldResponse"
# responses may fall through to errors
default:
description: Error
schema:
$ref: "#/definitions/ErrorResponse"
/postpath:
x-swagger-router-controller: hello_world
post:
description: add a new movie to the list
# movie info to be stored
operationId: postpath
parameters:
- name: title
description: Movie properties
in: body
required: true
schema:
$ref: "#/definitions/Movie"
responses:
"200":
description: Success
schema:
$ref: "#/definitions/GeneralResponse"
default:
description: Error
schema:
$ref: "#/definitions/ErrorResponse"
/swagger:
x-swagger-pipe: swagger_raw
# complex objects have schema definitions
definitions:
HelloWorldResponse:
required:
- message
properties:
message:
type: string
ErrorResponse:
required:
- message
properties:
message:
type: string
Movie:
type: object
properties:
title:
type: string
description: task object name
year:
type: number
description: task description
required:
- title
- year
GeneralResponse:
type: object
properties:
success:
type: number
description: returns 1 if successful
description:
type: string
description: a short comment
required:
- success
- description
下面是后面的hello_world.js。
'use strict';
var util = require('util');
module.exports = {
hello: hello, postpath: postpath
};
function hello(req, res) {
// variables defined in the Swagger document can be referenced using req.swagger.params.{parameter_name}
var name = req.swagger.params.name.value || 'stranger';
var hello = util.format('Hello, %s!', name, 'how are you?');
// this sends back a JSON response which is a single string
res.json(hello);
}
function postpath(req, res) {
var isOpen = true; // Details omitted
var doorStatus = isOpen;
res.json('Test');
}
我收到方法不允许的异常..
以下是堆栈跟踪..
{ "message": "Route defined in Swagger specification (/hello) but there is no defined post operation.", "allowedMethods": [ "GET" ] }
您定义了这个:
paths:
/hello:
get:
但您还想定义 POST:
paths:
/hello:
get:
- something
post:
- something else