<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                # REST API [TOC=2,3] 項目中,經常要提供一個 API 供第三方使用,一個通用的 API 設計規范就是使用 REST API。REST API 是使用 HTTP 中的請求類型來標識對資源的操作。如: * `GET`?`/ticket`?#獲取ticket列表 * `GET`?`/ticket/12`?#查看某個具體的ticket * `POST`?`/ticket`?#新建一個ticket * `PUT`?`/ticket/12`?#更新ticket 12 * `DELETE`?`/ticket/12`?#刪除ticekt 12 ThinkJS 中提供了很便捷的方式來創建 REST API,創建后無需額外的代碼即可響應 REST API 的處理,同時也可以通過定制響應額外的需求。 ## 創建 REST API 通過?`thinkjs controller [name] --rest`?即可創建一個 REST API。如: ~~~ thinkjs controller home/ticket --rest ~~~ 上面的命令表示在?`home`?模塊下創建了一個?`ticket`?的 Rest Controller,該 Controller 用來處理資源?`ticket`的請求。 ## 處理 REST API 請求 Rest Controller 創建完成后,無需寫任何的代碼,即可完成對 REST API 的處理。資源名稱和數據表名稱是一一對應的,如:資源名為?`ticket`,那么對應的數據表為?`數據表前綴`?+?`ticket`。 ## 請求類型 REST API 默認是從 HTTP METHOD 里獲取當前的請求類型的,如:當前請求類型是?`DELETE`,表示對資源進行刪除操作。 如果有些客戶端不支持發送?`DELETE`?請求類型,那么可以通過屬性?`_method`?指定一個參數用來接收請求類型。如: ~~~ export default class extends think.controller.rest { init(http){ super.init(http); this._method = "_method"; //指定請求類型從 GET 參數 _method 里獲取 } } ~~~ ## 字段過濾 默認情況下,獲取資源信息時,會將資源的所有字段都返回。有時候需要隱藏部分字段,可以通過在`__before`?魔術方法里完成此類操作。 ~~~ export default class extends think.controller.rest { __before(){ this.modelInstance.fieldReverse("password,score"); //隱藏 password 和 score 字段 } } ~~~ ## 權限管理 有些 REST API 需要進行權限驗證,驗證完成后才能獲取對應的信息,可以通過在?`__before`?魔術方法里進行驗證。 ~~~ export default class extends think.controller.rest { * __before(){ let auth = yield this.checkAuth(); if(!auth){ return this.fail("no permissions"); //沒權限時直接返回 } } } ~~~ ## 更多定制 更多定制方式請參見?[API -> controller.rest](https://thinkjs.org/zh-CN/doc/2.0/api_controller_rest.html)。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看