
本セクションで学習する内容について、その概要を見ていきます。
WebAPIとは「何ものなのか」について用語の定義を学習します。
WebAPIを利用するとどんなうれしいことがあるのか、また、そのリスクは何があるのかについて学習します。
これからWebAPIを学習していくにあたり、基礎知識となるHTTP通信について学習します。
本レクチャーでは実際にHTTP通信のメッセエージ内容を確認し、HTTP通信のうちリクエスト部分についてどのような通信が行われているのか学習します。
これからWebAPIを学習していくにあたり、基礎知識となるHTTP通信について学習します。
本レクチャーではHTTP通信のうちレスポンスについてどのような内容、構成のものがやりとりされているか学習します。
REST WebAPI を学習していると必ず出てくる用語「安全性」と「冪等性(べきとうせい)」について、どういう意味なのか、どういったことを指しているのかを学習します。
本セクションで学習する内容について、その概要を見ていきます。
WebAPIを見ているとよく見かける「RESTful WebAPI」と「REST WebAPI」。
"ful" が付いているかいないかの違いがどういった違いを意味しているのか、その違いから REST が意味することを学習します。
REST原則のうち「クライアント/サーバー」が示す意味を学習します。
REST原則のうち「階層化システム」が示す意味を学習します。
REST原則のうち「コードオンデマンド」が示す意味を学習します。
REST原則のうち「統一インターフェース」が示す制約の詳細を学習します。
REST原則のうち「ステートレス」が示す意味を学習します。
REST原則のうち「キャッシュ制御」が示す意味を学習します。
REST WebAPI を設計する際の指針となる「設計レベル」について、どのような段階があるのか学習します。
本セクションで学習する内容について、その概要を見ていきます。
REST WebAPI を設計する際に気を付けたいポイントとして、URIの設計ポイントを学習します。
前半となる本レクチャーでは5つのポイントを学習します。
REST WebAPI を設計する際に気を付けたいポイントとして、URIの設計ポイントを学習します。
後半となる本レクチャーでは4つのポイントを学習します。
URIに対してメソッドを適用するとどのような意味を持つのか、その意味付けから設計としてどう扱ったらよいかを学習します。
サーバーリクエストする際、クライアント側から引数として渡すパラメーターの指定方法としてよく見かけるものに「クエリパラメーター」と「パスパラメータ―」があります。
本レクチャーではその2つの使い分け方について学習します。
レスポンス時に返す「ステータスコード」について、どのようなものを利用するのかそのコードそれぞれの意味について学習します。
これまで学習した「メソッド」と「ステータスコード」について、組み合わせとしてどのようなパターンがあり得るのか、について学習します。
レスポンスする際のデータフォーマットとしてどのようなものがあるのか、について学習します。
レスポンスボディー内のデータ構造について、どのような形にするとよいのか、その設計ポイントについて学習します。
エラーを返却する際、気を付けたい設計ポイントを学習します。
本セクションで学習する内容について、その概要を見ていきます。
WebAPIでよく見かける「URI中にあるバージョン番号」について、必要なのかどうか、付けるとしたらどういうことを考慮して付与しなければならないのか、について学習します。
前提知識として「認証と認可の違い」を学習し、OAuth および OpenIDConnect の主要なフローを学習します。
JSON Web Token(JWT) の構成、作り方について学習します。
リクエストヘッダーで利用されるAuthenticatonヘッダーの使い方について学習します。
WebAPI を公開した際に懸念される不用意な大量アクセスに対する対策として実装される「レートリミット」について、どのようなロジックで設計するとよいのか、その具体的な方法を学習します。
マスタデータなどあまり変わらないデータはキャッシュすることで通信量を減らし高速な応答が実現できます。
本レクチャーではキャッシュをどのようにコントロールするのか、具体的な設定方法を学習します。
WebAPIもWeb上で公開されるサービスです。
悪意あるユーザーからの不正アクセスも気にしなければいけません。
本レクチャーでは気を付けておきたい代表的な観点および具体的な対策方法を学習します。
本セクションで学習する内容について、その概要を見ていきます。
OpenAPI と Swagger がそれぞれどのような意味を持っているのか、これらが開発されてきた歴史も含めて学習します。
OpenAPI Specification の閲覧方法について学習します。
Swagger Editor の起動および利用方法について学習します。
Visual Studio Code にある拡張機能を利用した OpenAPI 編集環境の構築を行います。
Visual Studio Code を利用して「Hello World」を返却するWebAPIの設計を行います。
OpenAPI で利用可能な「データ型」はどのようなものがあるのか、基本的なものとその記述方法について学習します。
OpenAPI のルートドキュメントについて何が設定できるのか、について学習します。
OpenAPI の info オブジェクトについて何が設定できるのか、について学習します。
OpenAPI の servers オブジェクトに何が設定できるのか、について学習します。
OpenAPI の paths の全体構成およびメタデータ部分について何が設定できるのか学習します。
OpenAPIでAPIを設計する際必要となる「リクエストパラメーター」について、設定できる項目を学習します。
OpenAPIでAPIを設計する際必要となる「リクエストボディー」について、設定できる項目を学習します。
OpenAPIでAPIを設計する際必要となる「レスポンス」について、設定できる項目を学習します。
OpenAPIで設定できる「データ型」について、より詳細な型定義方法を学習します。
前半となる本レクチャーでは共通プロパティ、数値、文字列、真偽値を学習します。
OpenAPIで設定できる「データ型」について、より詳細な型定義方法を学習します。
後半となる本レクチャーではオブジェクト、配列、列挙体を学習します。
OpenAPIでAPIを分類するために利用される tag について、その設定方法を学習します。
OpenAPIの中で2重管理を避けるための仕組みとして利用できるコンポーネントについて、掃き出せるオブジェクトや掃き出し方使い方を学習します。
OpenAPIで指定できるセキュリティまわりの項目およびその指定方法を学習します。
作成したOpenAPIをベースにスタブ作成、実行、テストする方法について学習します。
本レクチャーの添付に講座全体の振り返りPDFを添付しました。
パスワードはすべてのレクチャーを完了した際に送信される完了メッセージの中に記載しています。
ぜひ、最後まで走り切っていただいたのち、講座の振り返りにご活用いただければと思います。
本講座で学習したことを振り返り、今後どんなことを学習するとよいか見ていきます。
ボーナスレクチャーです。
WebAPIやRESTという言葉をよく耳にするようになりましたが、正しく設計や実装できているでしょうか?
本講座ではREST WebAPI サービスを設計するうえでおさえておきたい知識を学習したうえで、実際にOpenAPIを利用してAPIを設計していきます。
本講座は「REST WebAPI を設計する講座」であり、「REST WebAPI を実装する講座」ではありませんが、WebAPIのあるべき設計とはどのようなものなのか、について学習できます。
【更新履歴】
2024/02/21 v1.1.0 確認テスト追加
2022/01/15 v1.0.4 セクション5 Authenticationヘッダーレクチャーの追加
2021/12/13 v1.0.3 セクション3 セクション末クイズ No.3 の誤字修正
2021/04/27 v1.0.2 セクション4 セクション末クイズ No.5 の修正
2021/02/12 v1.0.1 振り返りレクチャーの追加
2020/06/24 v1.0.0 初版リリース