代碼優(yōu)先還是設(shè)計(jì)優(yōu)先?說說API開發(fā)技術(shù)(八)

      網(wǎng)友投稿 913 2022-05-30

      @Api(tags = "Member API") @CrossOrigin @Controller @RequestMapping(value = "/members", produces = MediaType.APPLICATION_JSON_UTF8_VALUE) public class MemberController { private MemberService memberService; public MemberController(@Lazy MemberService memberService) { this.memberService = memberService; } @ApiOperation(value = "Retrieves member information as filtered by an optional search string or filter request") @ApiResponses(value = { @ApiResponse(code = SC_OK, message = "ok") }) @ResponseBody @GetMapping(value = "") @ResponseStatus(HttpStatus.OK) public ResponseEntity> getAllMembers(@RequestParam(required = false) String searchString, FilterRequest filter) { return new ResponseEntity<>(memberService.getMembers(filter, searchString), HttpStatus.OK); } }

      展開以后的效果:

      【RAML】

      REST API建模語言(RAML)是一種基于YAML的描述REST API的語言,它提供了描述REST或?qū)嶋HREST API所需的所有信息。雖然RAML是為REST API設(shè)計(jì)的,但它能夠描述不服從REST的所有約束的API(因此被稱為?"practically RESTful")。它鼓勵(lì)重用,以最佳實(shí)踐結(jié)果為目標(biāo)。

      一個(gè)例子:

      一些亮點(diǎn):

      l??第7、12行:定義特征,在多處引用

      l??第12行:Include一個(gè)文件

      l??第13、14行:定義一個(gè)?"資源?"數(shù)據(jù)類型"/songs";使用以前定義的特征。

      l??第15、19、37行:定義了HTTP方法。

      l??第25、36行:MIME類型。

      【API Blueprint】

      API Blueprint是一種高級(jí)的API描述語言。你可以用它在API開發(fā)之前設(shè)計(jì)一個(gè)API,或者描述一個(gè)現(xiàn)有的API。

      一個(gè)例子:

      FORMAT: 1A # Categories API ## Categories [/categories] ### Create a Category [POST] + Response 201 ## Category [/category/{id}] + Parameters + id: 42 (required) ### Delete a Category [DELETE] + Response 204 ## Category Items [/category/{id}/items] + Parameters + id: 42 (required) ## Create an Item [POST] + Response 201

      代碼優(yōu)先還是設(shè)計(jì)優(yōu)先?說說API開發(fā)技術(shù)(八)

      【小結(jié)】

      在本文中,一共探討了三種API設(shè)計(jì)技術(shù):?OpenAPI, RAML, API Bllueprint。我們重點(diǎn)從兩個(gè)方向?qū)W習(xí)了OpenAPI技術(shù):

      l??先設(shè)計(jì)API,?再從API配置文件生成客戶端和服務(wù)器端的代碼,也就是設(shè)計(jì)優(yōu)先的方法。

      l??先寫出代碼實(shí)現(xiàn),再從代碼生成API文檔,也就是代碼優(yōu)先的方法。

      這兩種方法都有利有弊。在開發(fā)API時(shí)到底應(yīng)該選哪種方法?這主要取決于如下的因素:

      l??誰會(huì)使用你的API?

      l??他們的需求是什么?

      l??API要解決什么問題?

      l??誰來開發(fā)?

      l??以后誰來維護(hù)?

      在你選擇正確的API開發(fā)方法時(shí),應(yīng)該先嘗試回答上面的問題。

      歡迎討論。

      API

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:機(jī)器人編程實(shí)踐-ROS2基礎(chǔ)與應(yīng)用-
      下一篇:Android進(jìn)階(十七)AndroidAPP開發(fā)問題匯總(一)
      相關(guān)文章
      亚洲熟妇无码八V在线播放 | 国产成人A亚洲精V品无码| 亚洲成a人片在线看| 亚洲天堂中文字幕在线观看| 亚洲色av性色在线观无码| 亚洲AV无码久久| 亚洲VA中文字幕不卡无码| 亚洲精品制服丝袜四区| 色噜噜AV亚洲色一区二区| 亚洲日韩中文字幕在线播放| 亚洲伊人色欲综合网| 亚洲香蕉网久久综合影视| 亚洲精品中文字幕乱码三区 | 狠狠亚洲婷婷综合色香五月排名| 中文字幕亚洲第一| 亚洲精品蜜桃久久久久久| 久久精品夜色噜噜亚洲A∨| 奇米影视亚洲春色| 亚洲精品无码久久久影院相关影片 | 亚洲自偷自偷图片| 久久久久亚洲AV片无码| 久久亚洲日韩看片无码| 亚洲图片激情小说| 中日韩亚洲人成无码网站| 亚洲成a人片在线观看天堂无码| 老牛精品亚洲成av人片| 亚洲天堂在线视频| 亚洲小说区图片区另类春色| 久久亚洲精品成人综合| 91在线亚洲精品专区| 亚洲人成网站日本片| 亚洲日韩精品国产3区| 精品国产日韩亚洲一区91| 狠狠亚洲狠狠欧洲2019| 亚洲国产精品无码AAA片| 91亚洲国产成人精品下载| 亚洲视频在线观看地址| 亚洲国产精品一区二区三区在线观看| 亚洲欧美精品午睡沙发| 亚洲国产精品一区二区第四页| 日韩va亚洲va欧洲va国产|