2016-10-26 56 views
1

我從Swagger API生成了Spring REST Web服務。對於POST服務的代碼如下當前請求不是多部分

@javax.annotation.Generated(value = "class io.swagger.codegen.languages.SpringCodegen", date = "2016-10-24T09:36:32.738Z") 

@Api(value = "addUser", description = "the addUser API") 
public interface AddUserApi { 

@ApiOperation(value = "Add an additional user", notes = "This service is used to add and additional user to the list of users.", response = Void.class, tags={ }) 
@ApiResponses(value = { 
    @ApiResponse(code = 200, message = "OK", response = Void.class), 
    @ApiResponse(code = 200, message = "Unexpected error", response = Void.class) }) 
@RequestMapping(value = "/addUser", 
    produces = { "application/json" }, 
    consumes = { "application/x-www-form-urlencoded" }, 
    method = RequestMethod.POST) 
ResponseEntity<Void> addUserPost(


@ApiParam(value = "Unique id of the user to be added.", required=true) @RequestPart(value="userId", required=true) Integer userId, 


@ApiParam(value = "Name of the user to be added.", required=true) @RequestPart(value="name", required=true) String name, 


@ApiParam(value = "Profession of the user to be added.", required=true) @RequestPart(value="profession", required=true) String profession); 

} 

給出我使用的內容類型「應用程序/ x-WWW的形式,進行了urlencoded」發佈的數據,該服務。但我面臨的問題是,在發佈時,我得到一個錯誤JSON作爲下面給出的響應。

{ 
    "timestamp": 1477401894250, 
    "status": 500, 
    "error": "Internal Server Error", 
    "exception": "org.springframework.web.multipart.MultipartException", 
    "message": "The current request is not a multipart request", 
    "path": "/UserManagement/rest/UserService/addUser" 
} 

根據當我們從形式上傳文件時,才需要我的知識多,我沒有上傳文件。我已搜索,每個結果都基於文件上傳。我的搖擺樂YAML在下面給出。

swagger: '2.0' 
info: 
version: 1.0.0 
title: Extended User Management API 
description: >- 
    This is communicate with an extended user management webservice to test the swagger API for learning 
schemes: 
    - http 
basePath: /UserManagement/rest/UserService 
host: '127.0.0.1:8089' 
produces: 
    - application/json 
paths: 
    /users: 
    get: 
     responses: 
     '200': 
      description: An array of users 
      schema: 
      type: array 
      items: 
       $ref: '#/definitions/User' 
      default: 
      description: Unexpected error 
      schema: 
       $ref: '#/definitions/Error' 
    /addUser: 
     post: 
     summary: Add an additional user 
     description: This service is used to add and additional user to the list of users. 
     produces: 
     - application/json 
     consumes: 
     - application/x-www-form-urlencoded 
     parameters: 
     - name: user_id 
      in: query 
      description: Unique id of the user to be added. 
      required: true 
      type: integer 
      format: int32 
     - name: name 
      in: query 
      description: Name of the user to be added. 
      required: true 
      type: string 
     - name: profession 
      in: query 
      description: Profession of the user to be added. 
      required: true 
      type: string 
     responses: 
     '200': 
      description: OK 
     default: 
      description: Unexpected error 
      schema: 
      $ref: '#/definitions/Error' 
definitions: 
    User: 
    type: object 
    properties: 
     user_id: 
     type: integer 
     format: int32 
     description: This is unique id that is assigned to each user. 
     name: 
     type: string 
     description: This is the name of the user 
     profession: 
     type: string 
     description: This is the profession that the user holds 
    Error: 
    type: object 
    properties: 
     code: 
     type: integer 
     format: int32 
     message: 
     type: string 
     fields: 
     type: string 

有人可以請求幫助我,告訴我爲什麼我要面對這個問題以及如何解決這個問題。請告知您是否需要任何其他詳細信息來分析問題。

請求標頭如下

{ 
    "Accept": "application/json" 
} 

編輯:

我試圖改變消耗爲 「application/JSON」,我得到的迴應如下

{ 
    "timestamp": 1477464487595, 
    "status": 415, 
    "error": "Unsupported Media Type", 
    "exception": "org.springframework.web.HttpMediaTypeNotSupportedException", 
    "message": "Content type 'application/x-www-form-urlencoded' not supported", 
    "path": "/UserManagement/rest/UserService/addUser" 
} 

給出請求標題如下

{ 
    "Accept": "application/json" 
} 
+0

可以你粘貼請求頭? – Waqas

+0

添加您的請求plz – kuhajeyan

回答

1

你的映射包含消耗= {「應用程序/ X WWW的窗體-urlencoded」}意味着它接受的內容類型是binarym,即改變爲以下接受JSON數據類型

@RequestMapping(value = "/addUser", 
    produces = { "application/json" }, 
    consumes = { "application/json" }, 
    method = RequestMethod.POST) 
ResponseEntity<Void> addUserPost(..) 
+0

我試着改變這個,我得到了「Unsupported Media Type」415錯誤。我有一個表單,我需要將該表單的數據獲取到Web服務。你可以在yaml中看到這個帖子寫入swagger的參數 – Manesh

+0

你可以更新你的完整請求 – kuhajeyan

+0

我編輯的內容添加了新的請求頭和響應 – Manesh

相關問題