服務計算:博客文檔的API設計

博客網站API設計

本次我們要實現一個博客網站的API
在設計API的時候我們一般都會使用http協議
使用http來設計API的時候有一些需要我們去遵守的原則

  • 每個資源有一個標識符,即該資源的URL
  • RESTAPI 使用統一接口,如GET、POST、PUT、PATCH 和 DELETE
    其實需要遵守的原則很多,在這裏只列出來在這次我們需要特別注意的

具體操作

我們這次設計一個博客網站的API,首先我們需要定義結構體來表示每一個用戶,每一個莫克
用戶結構體大概包括用戶的ID,註冊時間,等級,以及最後一次登陸時間
具體實現大致如下

type Person struct {
    ID        string   `json:"id,omitemty"`
    Registtime time   `json:"registtime,omitempty"`
    Level  int   `json:"level,omitempty"`
    Lastregist time `json:"lastregist,omitempty"`
}

博客的結構體大致包括標識符,作者以及發表時間還有題目

type Person struct {
    ID int `json:"id,omitemty"`
    Author string   `json:"author,omitemty"`
    Title  string   `json:"title,omitemty"`
    Submittime time   `json:"submittime,omitempty"`
}

在這裏無論數是對用戶還是對博客
都大致使用GET、POST、PUT、PATCH 和 DELETE這幾個命令
對用戶

  • GET /users:獲得所有用戶的信息,用於查詢
  • GET /users/ID:獲得當前ID對應的用戶的信息,用於查詢
  • POST /users:創建新的用戶,用於註冊
  • PATCH /users/ID:對當前ID對應的用戶執行部分更新,當用戶升級了/更改ID/充值之後用到這個
  • DELETE /users/ID:刪除當前ID對應的用戶,用於註銷用戶

對博客

  • GET /blog:獲得所有博客的信息,用於查詢
  • GET /blog/ID:獲得當前ID對應博客的信息,用於查詢
  • GET /blog/Author:獲得當前作者所有博客的信息,用於查詢
  • POST /blog:創建新的博客,用於發佈博客
  • PUT /blog/ID:對當前ID對應的博客進行更改,而更改後的URL由客戶端來決定,如給自己的博客分類(添加路徑)
  • PATCH /blog/ID:對當前ID對應的博客執行部分更新,當用戶對博客進行更改的時候需要用到這個
  • DELETE /blog/ID:刪除位於當前ID對應的博客,用於刪除博客

狀態碼(括號內表示可能導致該狀態碼的動作):

  • 200 OK :服務器成功返回用戶請求的數據(GET)
  • 201 CREATED :新建或修改數據成功(POST/PUT/PATCH)
  • 202 Accepted :表示一個請求已經進入後臺排隊(GET/POST/PUT/PATCH/DELETE)
  • 204 NO CONTENT :成功刪除數據(DELETE)
  • 400 INVALID REQUEST :請求有錯誤(GET/POST/PUT/PATCH/DELETE)
  • 401 Unauthorized :用戶沒有權限(GET/POST/PUT/PATCH/DELETE)
  • 403 Forbidden :用戶得到授權,但是無法訪問(GET/POST/PUT/PATCH/DELETE)
  • 404 NOT FOUND :用戶發出的請求針對的是不存在的記錄(GET/POST/PUT/PATCH/DELETE)
  • 406 Not Acceptable :用戶請求的格式不可得(GET)
  • 410 Gone :用戶請求的資源被永久刪除(GET)
  • 422 Unprocesable entity :驗證錯誤(POST/PUT/PATCH)
  • 500 INTERNAL SERVER ERROR :服務器發生錯誤(GET/POST/PUT/PATCH/DELETE)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章