8.3 - RESTfulサービスとは何ですか?
RESTfulサービスとは何ですか?
RESTとは、representational state transferの略です。ユーザーやToDoアイテムの読み取り(GET)、更新(PUT)、作成(POST)、削除(DELETE)を行うためのアプリケーションプログラミングインターフェース(API)のアーキテクチャスタイルである。RESTfulアプローチの目的は、システムに影響を与えることなく管理・更新できるコンポーネントを再利用することで、スピード/パフォーマンス、信頼性、成長能力を高めることです。
お気づきかもしれませんが、Rust以前は、遅くて高レベルの言語がWeb開発の賢い選択であるように思われていました。なぜなら、より速く、より安全に書けるからです。これは、Web開発におけるデータの処理速度の主なボトルネックがネットワーク接続速度であることに起因しています。RESTfulデザインでは、アルゴリズムの速度だけに注目するのではなく、APIコールを減らすなど、システムを経済化することで速度の向上を目指します。それを踏まえて、この項では、以下のRESTfulの概念について解説します。
- レイヤードシステムです。これにより、インターフェイスを変更することなく、認証などの追加機能を追加することができます。例えば、すべてのビューでJWT(JSON Web Token)をチェックしなければならない場合、これは多くの反復的なコードであり、保守が難しく、エラーが発生しやすい。
- 統一されたシステム。アーキテクチャを単純化し、切り離すことで、アプリケーションの各部分が衝突することなく独立して進化することが可能になります。
- ステートレス(無状態)。アプリケーションがサーバーに直接何かを保存しないことを保証します。これは、マイクロサービスやクラウドコンピューティングに影響を与えるものです。
- ロギング。アプリケーションを覗き見して、どのように動作しているかを確認することができます。
- キャッシュ:フロントエンドにデータを保存して、バックエンドAPIへのAPI呼び出し回数を減らすことができます。
- コードオンデマンド。バックエンドサーバーがフロントエンドのコードを直接実行する方法です。
レイヤーシステムの概念については、次のセクションで説明します。