投稿

10月, 2025の投稿を表示しています

10月30日(木)1コマ目

イメージ
今日、やったこと PUT、DELETEコマンド用メソッド クライアント側作成(IDで検索) 今日のホワイトボード PUTコマンド用メソッド HTTPの PUTコマンド は 更新用 。 更新データをクエリパラメータで送信する。 HTTPのPUTコマンドに対応するメソッドには  @PutMapping()  アノテーションを付与。 クエリパラメータで送信される更新データは、@RequestParamアノテーションが付与された引数で受け取る。 DELETEコマンド用メソッド HTTPの DELETEコマンド は 削除用 。 更新データをクエリパラメータで送信する。 HTTPのDELETEコマンドに対応するメソッドには  @DeleteMapping()  アノテーションを付与。 クエリパラメータで送信される削除対象のIDは、@RequestParamアノテーションが付与された引数idで受け取る。 クライアント側を作成 クライアント側はJavaScriptでリクエスト、レスポンス受信、データ書き換えを行う。 JavaScriptで HTTPのリクエスト送信、レスポンス受信 には  fetch()関数  が用意されている。 図 クライアント側のイメージ 作成するクライアント側の画面は下図のとおり。 IDで検索するアプリケーションを作成する。 図 クライアント側の画面 HTMLファイル(searchById.html) JavaScriptからアクセスするタグにはIDを付与している。 JavaScriptファイル(searchById.js) ポイントは fetch() の使い方。 図 fetch()関数 fetch()の引数はリク...

10月23日(木)1コマ目

イメージ
今日、やったこと POSTコマンドで ボディ部にJSON形式でデータ送信 ボディ部にフォーム形式でデータ送信 今日のホワイトボード HTTPのパケットは 全体は下図のとおり。 図 HTTPのパケット(全体像) さらにHTTP部は下図のように3つのパートに分かれる。 図 パケット内のHTTP クライアントからサーバーへデータを送信する 今まで作ったメソッドは、クライアントからサーバーへ送信するデータは パスパラメータ クエリパラメータ で送信していた。 これらはパケットでは、リクエストラインに書き込まれる。 図 クエリパラメータの例 パスパラメータやクエリパラメータはデータサイズが少な目の場合に使われることが多く、大きなデータの場合はボディ部に格納することが多い。 ボディ部にデータをJSON形式で格納して送信 JSONとは、JavaScript Object Notationの略。JavaScriptのオブジェクト形式でテキストデータをやり取りする。 図 ボディ部にデータをJSON形式で格納して送信 サーバー側は以下のinsert_by_json()メソッドが処理をする。 ボディ部にデータをフォーム形式で格納して送信 フォーム形式は、<form>タグを使ったWebフォームにて入力されたデータを送信する際のフォーマット。 図 ボディ部にデータをフォーム形式で格納して送信 サーバー側は以下のinsert_by_form()メソッドが処理をする。 [おまけ]サーバーからクライアントのレスポンスは レスポンスパケットのHTTP部もリクエストと同じように3つのパートに分けられる。 ステータスコードはサーバーからクライアントへの、リクエスト処理結果。 200は正常終了。 図 サーバーからクライアントへのレスポンス 次回は PUT、DELETEコマンド用のメソッド。  

10月16日(木)1コマ目

今日、やったこと REST API(POSTコマンド) 今日のホワイトボード POSTコマンド用メソッド追加 REST APIでは、データ新規登録はPOSTコマンドでリクエストすることになっている。 コントローラクラスのPOSTコマンド用メソッドには  @PostMapping()  でパスとメソッドを紐づけ。 POSTコマンドでテスト 今まではWebブラウザのアドレス欄にURLを入力して、サーバーにリクエストしていた。 このやり方では、GETコマンドでリクエストすることなる。 POSTコマンドでリクエストするために、Chromeに拡張機能「Talend API Tester」を追加して、 テストした。 次回は PUT、DELETEコマンド用メソッド。

10月9日(木)1コマ目

イメージ
今日、やったこと REST APIサンプルアプリケーション作成(GETコマンド) 今日のホワイトボード リクエストのURLとサーバー側のクラス、メソッド .NetのMVCはリクエストのURLのパスから、対応するコントローラクラス、アクションメソッドが決まる。 JavaのSpring Bootでは、アノテーション(@xxxx)を使って、パスとクラス、メソッドを紐づける。 パスとクラスの紐づけ パスとクラスの紐づけは、 クラスに@RequestMapping()アノテーション を付与。 図 @RequestMapping()でパスとクラスを紐づけ GETコマンドリクエストに対応するメソッド GETコマンドを処理する メソッドには、@GetMapping()アノテーション を付与。 さらに、@GetMapping()アノテーションの引数でパスと紐づけ。 下図のように、パス”/api/book”に対応するメソッドには  @GetMapping("/book") を付与。 図 @GetMapping()でGETコマンドと処理メソッドを紐づけ パスパラメータ付きGETコマンドリクエストに対応するメソッド パスパラメータ付きのリクエストを処理するメソッドには、 @GetMapping()アノテーションの引数に、{引数名}でパスパラメータと引数を紐づけ 。 なお、 引数には@PathVariableアノテーション が必要。 下図のように、パス"/api/book/4"のようにパスパラメータ4を含むリクエストを処理するメソッドには  @GetMapping("/book/{id}") を付与することで、パスパラメータ4は引数idに渡される。 引数idには@PathValiableを付与。 図 パスパラメータとメソッドの引数を紐づけ クエリパラメータ付きGETコマンドリクエストに対応するメソッド クエリパラメータの値を代入する引数に@RequestParam()アノテーション を付与。 @RequestParam()アノテーションにはクエリパラメータ名を指定すること。 図 クエリパラメータと引数を紐づけ ソースコードをあげておきます。 [データト...

10月2日(木)1コマ目

イメージ
今日、やったこと Webアプリケーション作成の諸々 REST API導入 今日のホワイトボード 今まで作ってきたWebアプリケーション JavaのサーブレットやC#のRazorページのようなWebアプリケーションはサーバー側だけでプログラムが動く。クライアントはリクエスト送信、受信したレスポンス(HTML)を表示するだけ。 図 今まで作ってきたWebアプリケーション 表示するHTMLはサーバー側で生成している点がポイント。 これから作るWebアプリケーション クライアントの多様化(Webブラウザ、スマホアプリなど)に伴い、クライアントはサーバーからデータだけを受け取り、表示はクライアント側プログラムで行うようになってきた。 図 これから作るWebアプリケーション サーバー側はHTMLを返すかわりに、データ(XMLやJSONのフォーマットで)だけを返す点がポイント。  これからのWebアプリケーション開発に必要な知識 これから作るWebアプリケーションに必要な知識を紹介。 〇URLとは URLでリクエストしたいサーバー、Webページ等を指定する。 下図のようなフォーマットになっている。 図 URLのフォーマット 〇HTTPのコマンド Webアプリケーションはクライアントとサーバー間の通信をHTTP(今は暗号化されたHTTPSがメジャー)で行う。 HTTPではクライアントからサーバーにリクエストするために、下図のコマンドが用意されている。 図 HTTPのコマンド 〇WebAPIとREST API API≒関数。 WebAPIとは、Webで呼び出し可能な関数のイメージ。 RESTAPIはWebAPIの一種で、RESTの原則に従ったAPI。 図 WebAPIとREST API この授業では、サーバー側にRESTAPIを使ったアプリケーションを作成する。 JavaでREST APIをつくる ゼロから作ると大変なので、Javaでよく使われるフレームワークSpring Bootを使って作成する。 クライアント側はWebブラウザを利用するため、JavaScriptでクライアント側プログラムを作成する。 図 JavaでREST APIアプリケーションをつくる サンプルプロジェクト作成 今日は プロジェクトひな型をコピー Eclipseでコピーしたプロジェクトひな型をインポート...