Rest 文件神器 swagger (1)

方健發表於2014-12-18

試了一下swagger,當之無愧的文件神器。

功能

自動的在程式碼中分析REST介面,生成REST介面描述JSON。這個JSON又可以被客戶端生成文件,以及測試用的WEB頁。
例如:

  • 我有這麼一個介面:

    @RequestMapping(value="/{name}", method = RequestMethod.GET)
    @ResponseBody
    public Movie getMovie(@PathVariable String name) 
    
  • swagger加入以後,會自動生成這樣的描述:

    {
        "apiVersion": "1.0",
        "swaggerVersion": "1.0",
        "basePath": "http://localhost:8080",
        "resourcePath": "/movie",
        "apis": [
            {
                "path": "/movie/{name}",
                "description": "",
                "operations": [
                    {
                        "httpMethod": "GET",
                        "summary": "get Movie",
                        "notes": "",
                        "deprecated": false,
                        "responseClass": "Movie",
                        "nickname": "getMovie",
                        "parameters": [
                            {
                                "name": "name",
                                "description": "name",
                                "notes": "",
                                "paramType": "path",
                                "defaultValue": "",
                                "required": false,
                                "allowMultiple": false,
                                "dataType": "String"
                            }
                        ]
                    }
                ]
            }
        ],
        "models": {
            "Movie": {
                "properties": {
                    "name": {
                        "type": "string"
                    },
                    "year": {
                        "type": "string"
                    }
                },
                "type": "Movie"
            }
        }
    }
    
  • 然後swagger-ui作為純HTML+JS的前端,讀取上述描述後,可以產生這麼一套網頁: swagger-ui 可以當文件看也可以測試用。

相關文章