国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

restful風(fēng)格接口命名規(guī)范

這篇具有很好參考價(jià)值的文章主要介紹了restful風(fēng)格接口命名規(guī)范。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

(一)rest
1.概念

REST即表述性狀態(tài)傳遞(英文:Representational State Transfer,簡(jiǎn)稱REST)是Roy Fielding博士在2000年他的博士論文中提出來的一種軟件架構(gòu)風(fēng)格。它是一種針對(duì)網(wǎng)絡(luò)應(yīng)用的設(shè)計(jì)和開發(fā)方式,可以降低開發(fā)的復(fù)雜性,提高系統(tǒng)的可伸縮性。

可理解為:URL定位資源,用HTTP動(dòng)詞(GET,POST,DELETE,DETC)描述操作。

語法

URI = scheme "://" authority "/" path [ "?" query ][ "#" fragment ]
  • scheme: 指底層用的協(xié)議,如http、https、ftp。
  • host: 服務(wù)器的IP地址或者域名。
  • port: 端口,http中默認(rèn)80。
  • path: 訪問資源的路徑,就是各種 WEB 框架中定義的 Route 路由。
  • query: 為發(fā)送給服務(wù)器的參數(shù)。
  • fragment: 錨點(diǎn),定位到頁面的資源,錨點(diǎn)為資源 id。

項(xiàng)目中應(yīng)使用

URI = scheme"://"authority"/"api"/"version"/"path["?"query]["#"fragment]
2.restful

復(fù)合rest風(fēng)格的接口

3.http常用方法
  • get:獲取數(shù)據(jù)
  • post:插入數(shù)據(jù)
  • put:修改數(shù)據(jù)
  • delete:刪除數(shù)據(jù)
4.名詞

例如CSDN某請(qǐng)求接口:

https://msg.csdn.net/v1/web/message/view/unread

v1代表版本號(hào),可以發(fā)現(xiàn)他的接口都是名詞,所以可以知道restful接口使用的是名詞。

例如設(shè)計(jì)一個(gè)獲取數(shù)據(jù)的接口可以這樣設(shè)計(jì):/v1/list

上面為獲取所有數(shù)據(jù),當(dāng)需要獲取某一條數(shù)據(jù)時(shí),可以這樣設(shè)計(jì):/v1/list/1,代表獲取id為1的數(shù)據(jù)。

5.用法

可以設(shè)計(jì)出增刪改查的restful接口:文章來源地址http://www.zghlxwxcb.cn/news/detail-433827.html

  • 獲?。?code>v1/list–>GET
  • 添加:v1/list–>POST
  • 修改:v1/list–>PUT
  • 刪除:v1/list–>DELETE
6.應(yīng)用
@RestController
@RequestMapping("api")
@CrossOrigin
public class HelloController {
    @Autowired
    private UserService service;

    /**
     * 獲取全部列表
     * @return
     */
    @GetMapping("/v1/list")
    public String getList(){
        return "獲取全部列表";
    }

    /**
     * 獲取列表中的一條
     * @param id 通過id獲取數(shù)據(jù)
     * @return
     */
    @GetMapping("/v1/list/{id}")
    public String getListOne(@PathVariable (value = "id") Integer id){
        return "獲取列表中的" + id;
    }

    /**
     * 往列表中添加數(shù)據(jù)
     * @return
     */
    @PostMapping("/v1/list")
    public String insert(){
        return "往列表中添加數(shù)據(jù)";
    }

    /**
     * 修改列表數(shù)據(jù)
     * @param id 修改該列表的id
     * @return
     */
    @PutMapping("/v1/list/{id}")
    public String update(@PathVariable(value = "id") Integer id){
        return "修改列表數(shù)據(jù)" + id;
    }

    /**
     * 刪除列表數(shù)據(jù)
     * @return
     */
    @DeleteMapping("/v1/list")
    public String delete(){
        return "刪除列表數(shù)據(jù)";
    }
}
7.特點(diǎn)
  • 基于“資源”,數(shù)據(jù)也好、服務(wù)也好,在RESTFul設(shè)計(jì)里一切都是資源。
  • 無狀態(tài)。一次調(diào)用一般就會(huì)返回結(jié)果,不存在類似于“打開連接-訪問數(shù)據(jù)-關(guān)閉連接”這種依賴于上一次調(diào)用的情況。
  • URL中通常不出現(xiàn)動(dòng)詞,只有名詞 。
  • URL語義清晰、明確 。
  • 使用HTTP的GET、POST、DELETE、PUT來表示對(duì)于資源的增刪改查 。
  • 使用JSON不使用XML 。
8.最佳實(shí)踐原則
  • 使用HTTP動(dòng)詞表示增刪改查資源, GET:查詢,POST:新增,PUT:更新,DELETE:刪除 。
  • 返回結(jié)果必須使用JSON 。
  • HTTP狀態(tài)碼,在REST中都有特定的意義:200,201,202,204,400,401,403,500。比如401表示用戶身份認(rèn)證失敗,403表示你驗(yàn)證身份通過了,但這個(gè)資源你不能操作。
  • API必須有版本的概念,v1,v2,v3 。
  • 使用Token令牌來做用戶身份的校驗(yàn)與權(quán)限分級(jí),而不是Cookie。
  • url中大小寫不敏感,不要出現(xiàn)大寫字母。
  • 使用 - 而不是使用 _ 做URL路徑中字符串連接。
  • url結(jié)尾不應(yīng)該包含斜杠"/"
  • url路徑名詞均為復(fù)數(shù)

到了這里,關(guān)于restful風(fēng)格接口命名規(guī)范的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包