RESTfulなスタイルの

RESTfulなWebサービス記述

博士はロイ・トーマス・フィールディングは2000年に作られました

RESTは表象英語です

頭字語の状態転送

Representational State譲渡またはのRepresentational State転送

RESTは、建築スタイルのWebサービスであります

HTTP、URIおよびその他の規格やプロトコルの普及

軽量、クロスプラットフォーム、クロスアーキテクチャ設計言語。

IMG

最終的にはRESTとは何でしょうか?

RESTスタイルです。これは、標準ではない、またそれは、ソフトウェアの一部が、考えられています。

RESTは、通常、標準的なプロトコルやHTTP、URIの使用に基づいて、XML、JSONやHTMLが広範囲に存在しています。

何のRESTfulです

中国のスタイルでのRESTful対応するREST。

RESTfulなWebサービスのRESTは、一般的なアプリケーションは、RESTスタイルのWebサービスに準拠しています。

二つの主要なWebサービス

JAX-RS

RESTfulなWebサービス

JAX-WS Webサービス

RESTアーキテクチャの主要原則

ネットワーク上のすべては、リソース(資源)として抽象化することができます

各リソースには、一意のリソース識別子(リソースを持っています

識別子)

(等XML、JSON、)種々の形態と同一のリソース

リソース上の各種操作は、リソース識別子を変更しません。

すべての操作はステートレスです(ステートレス)

やり方一貫した方針のRESTアーキテクチャは、RESTfulな呼び出すことができます

ステートレス

ステートレスは、クライアントを行い、サーバーが他のサイドの詳細を保存する必要はありません、サーバーは、現在に対処する必要があります

フロントを知らなくても、リクエストします

歴史を要求します。

だから、それが簡単にリソースを解放することができます。

サーバーをフルに活用します

プール技術は、安定性とパフォーマンスを向上させます。

リソース操作

http://taotao.com/item/

GET:リソースを取得します。

POST:新しいリソースを作成します

PUT:リソースの状態を変更します。

DELETE:リソースを削除します。

リソース・ショー

XML

JSON

......

オリジナルの道

http://127.0.0.1/user/queryUser/ {ID} GETの方法、ユーザ ****取得データID

http://127.0.0.1/user/updateユーザPOSTメソッドは、****ユーザーによって変更します

http://127.0.0.1/user/saveユーザーPOSTの****の方法を、新しいユーザー

http://127.0.0.1/user/deleteUser/ {ID} GET / POSTの方法は、ユーザに応じて IDを削除****

RESTfulな

[ Http://127.0.0.1/user/http://127.0.0.1/user/ {ID}){ID}](http://127.0.0.1/user/ {ID})のGET メソッド、ユーザーは ****データIDを取得します

http://127.0.0.1/user/ PUTの****法、ユーザ修正

http://127.0.0.1/user/ POSTの****方法、新しいユーザー

} http://127.0.0.1/user/{id DELETE メソッド、ユーザに応じて IDを削除****

より簡潔なインターフェース、Webサービスの開発

RESTインターフェース定義

IMG

冪等性:同じRESTインターフェースに多くの訪問は、リソース状態GETは同じです。

セキュリティ:RESTにアクセスするためのインタフェースは、サーバ側のリソースの状態の変更を行うものではありません。

ベストプラクティス

ベストプラクティス:RESTインタフェースデザイン

•URLから成ります

- ネットワーク・プロトコル(HTTP、HTTPS)

- サーバのアドレス

- インタフェース名

- パラメータ一覧

•URL定義した制限

- 大文字を使用しないでください。

- 中心線を使用する - の代わりにアンダースコア_

- エンコードパラメータリストはあまりにもする必要があります

ベストプラクティス:デザイン応答

コンテンツ本体は、データのみを送信するために使用されます

データは原則をどうするせることができ、あなたがプロセスを「開梱」する必要はありません。

要求されたデータを記述するか、ヘッダメタデータを置くために使用されます

IMG

IMG

HTTP応答ステータスコード

IMG

RESTfulなサービスを実現SpringMVC

SpringMVC元生態サポートRESTスタイルのアーキテクチャ設計。

参加する注:

@RequestMapping

@PathVariable

@ResponseBody

ResponseEntity

......

製品開発のためのRESTfulなスタイルのインターフェース

商品機能CRUDインタフェースで書かよるRESTfulなスタイル、

コモディティ書き込みクエリインターフェイス

ItemInterfaceControllerで書かれました

@Controller
@RequestMapping("item/interface")
public class
ItemInterfaceController {

    @Autowired
    private ItemService itemService;

    // http://manager.taotao.com/rest/item/interface/{id}
    /**
     * 根据id查询用户
     * 
     * @param id
     * @return 返回的类型是ResponseEntity,泛型声明为需要返回的数据类型
     */
    @RequestMapping(value = "{id}", method =
RequestMethod.GET) 
// 返回的是ResponseEntity或者加上@ResponseBody注解的效果是一样的,任选其一即可,也可以都设置。
// @ResponseBody
    public
ResponseEntity<Item> queryItemById(@PathVariable("id") Long id) {
       try {
           Item item = this.itemService.queryById(id);
           // 查询成功,响应的状态码应为200
           // 可以设置HttpStatus枚举的OK
           // return
ResponseEntity.status(HttpStatus.OK).body(Item);
           // 也可以使用ok()方法,效果和上面是一样的
           return
ResponseEntity.ok().body(item);
       } catch (Exception e) {
           // TODO Auto-generated catch block
           e.printStackTrace();
       }
       // 如果有异常,设置状态码为500
       return
ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(null);
    }
}

テストのためにGoogleのブラウザのテストツールを使用します

IMG

IMG

おすすめ

転載: blog.csdn.net/weixin_40160543/article/details/92388870