私は私にコードと話を示し 、 それがより明確に言ってやる
私はブールBLだ、私はあなたのサポートを共有する原動力です!
まず、の導入
インターフェイスのデザインは、私たちの開発者の日常業務です。我々は、フロントエンドのスタッフとインターフェースすると剣の鞘の錯覚のようなものかどうか。配信インタフェースの後、私たちの開発作業は、ステージ上で行わ。我々は標準化されたインターフェースのデザインを持っていない場合は、その結果はどうなりますか?写真の感触をしてみましょう。
二、REST
2000年に、彼の博士論文のプレゼントの若い男(ロイ・トーマス・フィールディング)はREST。RESTは、ソフトウェアアーキテクチャのWorld Wide Webのスタイルです。なぜそれの標準スタイルではないでしょうか?個人的な理解は標準が少し過剰であると言うかもしれません。若い男は行うことはできません。その後、このスタイルが普及して、海を渡って、それがうまく一般大衆に知られています。RESTに基づき、安らかになります。安らかは何ですか?単純にREST形式のインターフェイスに合わせて、入れ安らかです。
三、安らか
インターフェイスのさまざま。魯迅の千万人の目のように。何のようなRESTfulなインターフェースのように見えますか?
3.1 HTTPメソッド
HTTP、いくつかの基本的な方法があります。当社は、これらの規則の仕様の一部を使用します。
方法 | 効果 |
---|---|
取得する | データを取得します |
役職 | 挿入データ |
プット | データの更新 |
喜び | データを削除 |
我々はインターフェイスに関するデータを取得するときに我々がはっきりと見ることができれば、テーブルから、次に我々は、GETメソッドを使用します。
我々は明らかに私たちのインターフェースは、データを挿入する程度であるとき、私達はPOSTメソッドを使用していることがわかります場合。
私たちのインターフェースは、更新データとしているときに、我々は明確にすることを見ることができるならば、我々は、PUTメソッドを使用します。
我々はDELECTメソッドを使用して、データ・インタフェースを削除しようとしていたとき、私たちははっきりと見ることができます。
3.2名詞
我々はすでにので、今、我々はインターフェイスの設計に第二段階に来て、インターフェースのメソッドがどのような時に必要なものを知っている以上に。
私たちはどのようにの一種であるオンラインウェブサイトのインターフェースを見てください。
私たちは、インタフェース設計時に示されている等のV1、V2、V3、と、バージョン番号の上に書くことができますので、我々はV1があることがわかります。図では、彼は、バージョン番号を表します。
私たちは、インタフェースが名詞いる彼を見つけました。私たちが知っているので、RESTfulなインターフェースが名詞です。我々が設計することができますので、例えば、我々は、データを取得するためのインタフェースを設計します
/v1/list
インターフェイス上ですべてのデータを取得することです。
我々はデータリストを必要とするとき、私たちは設計することができます
/v1/list/1
インターフェースデータを検索するリストの上に第1号で、私たちは長い間、デジタルへの変更などのように、第2、第3のデータなどを取得することができます。
3.3ポートフォリオ
2つの上記の手順組み合わせ、我々は安らかにCRUDインターフェースを設計することができます。
インターフェース | 方法 | 効果 |
---|---|---|
/ V1 /リスト | 取得する | リストを入手します |
/ V1 /リスト | 役職 | リストを追加 |
/ V1 /リスト | プット | 更新リスト |
/ V1 /リスト | 喜び | 削除リスト |
3.4アプリケーション
以下は、デモのソースであります
import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
@SpringBootApplication
@RestController
@Slf4j
public class LsbRestfulApplication {
public static void main(String[] args) {
SpringApplication.run(LsbRestfulApplication.class, args);
}
/**
* 得到所有列表
* @return
*/
@RequestMapping(value = "/v1/list",method = RequestMethod.GET)
public String getList(){
log.info("得到列表");
return "得到列表";
}
/**
* 得到列表中的一条
* @param name
* @return
*/
@RequestMapping(value = "/v1/list/{name}",method = RequestMethod.GET)
public String getListone(@PathVariable("name") String name){
log.info("得到列表"+name);
return "得到列表"+name;
}
/**
* 往列表中的增加一条数据
* @return
*/
@RequestMapping(value = "/v1/list",method = RequestMethod.POST)
public String addList(){
log.info("增加一个列表1");
return "增加一个列表1";
}
/**
* 更新列表中的一条数据
* @return
*/
@RequestMapping(value = "/v1/list/{name}",method = RequestMethod.PUT)
public String updateListOne(@PathVariable("name") String name){
log.info("更新列表"+name);
return "更新列表"+name;
}
/**
* 删除所有列表
* @return
*/
@RequestMapping(value = "/v1/list",method = RequestMethod.DELETE)
public String delList(){
log.info("删除一个列表");
return "删除一个列表";
}
}
第四に、市の出会い系サイト
https://github.com/buerbl
信号:始皇帝暗殺