日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

Swagger與RestFul 集成 以及 注解使用Demo

 WindySky 2017-09-14


3  Swagger與標(biāo)準(zhǔn)RestFul(POST、PUT、DELETE、GET)集成Demo【以App應(yīng)用模塊為例】

/**
*App操作類(lèi),標(biāo)準(zhǔn)的RestFul接口
*/
@Api(value = "App操作類(lèi)", description ="App相關(guān)操作接口定義類(lèi)")
@RestController
@RequestMapping(value = "/apps")
public classBdAppController {
@Autowired
BdAppServicebdAppService;//AutowiredService

//1 POST --- URL:/apps
@ApiOperation(value = "創(chuàng)建", notes ="")
@ApiImplicitParam(name = "app", value = "創(chuàng)建", required =true, dataType ="App")
@RequestMapping(method = RequestMethod.POST)
publicApp release(@RequestBodyApp app){
//todo
reutrn app;
}
或:
@ApiOperation(value = "創(chuàng)建", notes = "")
@RequestMapping(value = "/release",method = RequestMethod.POST)
public ResponseData newApp(@ApiParam(name="app",
value="產(chǎn)品臨時(shí)對(duì)象",required = true) @RequestBodyApp app){
//todo
reutrn app; }
//2 GET (多條件查詢(xún)分頁(yè))--- URL:/apps
@ApiOperation(value = "應(yīng)用查詢(xún)", notes = "")
@ApiImplicitParams( value = {
@ApiImplicitParam(paramType = "query", name = "appType", dataType = "String", required = true, value = "應(yīng)用類(lèi)型", defaultValue = "10"),
@ApiImplicitParam(paramType = "query", name = "appClassId", dataType = "String", required = true, value = "應(yīng)用分類(lèi)id"),
@ApiImplicitParam(paramType = "query", name = "appId", dataType = "String", required = true, value = "appId"),
@ApiImplicitParam(paramType = "query", name = "appName", dataType = "String", value = "應(yīng)用名稱(chēng)"),
@ApiImplicitParam(paramType = "query", name = "appStatus", dataType = "String", required = true, value = "狀態(tài) 0:已下架 1:正常"),
@ApiImplicitParam(paramType = "query",name = "page", value = "當(dāng)前頁(yè)碼", required = true, dataType = "integer"),
@ApiImplicitParam(paramType = "query",name = "rows", value = "每頁(yè)條數(shù)", required = true, dataType = "integer")
})
@RequestMapping(method = RequestMethod.GET)
public App list(@RequestParam("appType") String appType,@RequestParam("appClassId") String appClassId,@RequestParam("appId") String appId,@RequestParam("appName") String appName,
@RequestParam("appStatus") String appStatus,
@RequestParam(name = "page", defaultValue = "1") int page,
@RequestParam(name = "rows", defaultValue = "10") int rows) {
//todo
return 按規(guī)范自己封裝; } //3 get ---url/{appid}
@ApiOperation(value = "獲取產(chǎn)品詳情", notes = "產(chǎn)品詳情")
@ApiImplicitParam(paramType = "path", name = "appId", value = "產(chǎn)品appId",
        required = true, dataType = "String")
@RequestMapping(value = "/{appId}", method = RequestMethod.GET)
private App getAppDetail(@PathVariable("appId") String appId) {
//todo
return 按規(guī)范自己封裝;
}

//4 PUT --URL/{appId} and RequestBody
@ApiOperation(value="update", notes="")
@ApiImplicitParams( value = {
        @ApiImplicitParam(paramType = "path", name = "appId", value = "", required = true, dataType = "String"),
        @ApiImplicitParam(name = "app", value = "App", required = true, dataType = "App")
})
@RequestMapping(value = "/{appId}", method = RequestMethod.PUT , consumes = MediaTypes.JSON_UTF_8)
public App Appupdate(@PathVariable(value = "appId") String appId,@RequestBody App app) {
//todo
return 按規(guī)范自己封裝;
}

//Post Many app objects
@ApiOperation(value="創(chuàng)建多條APPs", notes="")
@RequestMapping(value="/postApps", method=RequestMethod.POST)
public String postApps(@ApiParam(name="apps",value="用戶s",required = true) @RequestBody List<App> apps) {
System.out.print(apps);
return "success";
}

4 常見(jiàn)swagger注解一覽與使用

最常用的5個(gè)注解
@Api:修飾整個(gè)類(lèi),描述Controller的作用
@ApiOperation:描述一個(gè)類(lèi)的一個(gè)方法,或者說(shuō)一個(gè)接口
@ApiParam:?jiǎn)蝹€(gè)參數(shù)描述

@ApiModel
:用對(duì)象來(lái)接收參數(shù)
@ApiProperty:用對(duì)象接收參數(shù)時(shí),描述對(duì)象的一個(gè)字段

其它若干
@ApiResponse:HTTP響應(yīng)其中1個(gè)描述
@ApiResponses:HTTP響應(yīng)整體描述
@ApiIgnore
:使用該注解忽略這個(gè)API
@ApiClass
@ApiError
@ApiErrors
@ApiParamImplicit @ApiParamsImplicit

/**
@ApiParam:
 * Adds additional meta-data for operation parameters.
* <p/> * This annotation can be used only in combination of JAX-RS 1.x/2.x annotations. */

/**
@ApiParamImplicit:
 * Represents a single parameter in an API Operation.
* <p/> * While {@link ApiParam} is bound to a JAX-RS parameter, * method or field, this allows you to manually define a parameter in a fine-tuned manner. * This is the only way to define parameters when using Servlets or other non-JAX-RS * environments. * <p/> * This annotation must be used as a value of {@link ApiImplicitParams} * in order to be parsed. * * @see ApiImplicitParams */
5 Swagger 使用參考網(wǎng)址
Swagger RESTful API Documentation Specification:
Swagger注解使用 http://www.cnblogs.com/softidea/p/6251249.html 有什么問(wèn)題請(qǐng)指正。。。。。










    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類(lèi)似文章 更多