我在执行 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');
}
我得到方法不允许例外..
以下是stacktrace ..
{“message”:“在Swagger规范中定义的路由(/ hello)但是 没有定义的后期操作。“,”allowedMethods“:[ “GET”]}
答案 0 :(得分:0)
您已经定义了:
paths:
/hello:
get:
但您还想定义POST:
paths:
/hello:
get:
- something
post:
- something else