【SAPUI5】学習に役立つ動画集と、開発に役立つツール3選

##学習に役立つ動画集
SAPUI5の学習をする中でとても役に立つと感じたYoutubeのチャンネルがあるのでご紹介したいと思います。
[Anubhav Oberoy](https://www.youtube.com/channel/UCzEPlO_nyhiE1MkZiufl9iw)
インド人のAnubhavさんによる動画シリーズです。SAPの最新技術に関する動画がたくさん上がっています。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/276021/a0fe2bf4-a1ef-da7a-75d3-699070c602bd.png)

その中の[Anubhav's learning series](https://www.youtube.com/playlist?list=PLcxqFaocb9WJZiAhjoR4SOzUn7t6CAmfY)を私は最近よく見ています。
Webアプリ初心者であることを前提に講義を進めてくれるので納得感が強いです。こちらのYoutube動画では幅広いトピックについて触れられており、「こんな技術があるのか」というさわりを知るのによいコンテンツだと思います。
Anubhavさんは有償のe-learningも提供していて、基礎からステップ・バイ・ステップで学ぶなら有償版がおすすめです。
https://www.onlinefioritrainings.com/

##開発で役立つツール3選
上記の動画の中で出てくるフリーのサービスを紹介します。

###1. JSONLint 
https://jsonlint.com
JSONのフォーマットが正しいかチェックしてくれるサービスです。
JSONデータを貼り付けて"Validate JSON"ボタンを押すとチェックが実行されます。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/276021/d0501fa6-e89d-93a6-70f0-e784398bfe36.png)

###2. xmlvalidation
https://www.xmlvalidation.com
こちらはxmlのフォーマットをチェックしてくれるサービスです。
使い方はさきほどと同じで、xmlデータを貼り付けて"validate"ボタンを押すだけです。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/276021/5d7a1535-77f6-6121-8eab-872d055dd484.png)
結果
![image.png](https://qiita-image-store.s3.amazonaws.com/0/276021/afd1466e-7f7d-33d3-7ef7-30e3b1c0f8d5.png)
チェックできるのは閉じタグがちゃんとあるかなど一般的な内容で、SAPUI5の構文として正しいかはチェックされません。アプリの実行時にXMLフォーマットエラーが出たとき、フォーマットが正しいか確認する目的で使う場合が多いかと思います。

###3. Postman
以下の動画で紹介されていたツールです。
[SAP Gateway $batch from OData | DEEP ENTITY using OData Service | SAP Netweaver OData Training](https://www.youtube.com/watch?v=hC_EWlF3MZE&list=PLcxqFaocb9WJZiAhjoR4SOzUn7t6CAmfY&index=4)
ODataの各種メソッドをテストするときに使います。（Webアプリがまだできていない段階でのOData単体のテスト）
GETリクエストはブラウザからテストできますが、POSTリクエストはブラウザからは実行できません。そんなときに使えるのがPostmanのツールです。なお、POSTリクエストはSAPGUIのGateway Clientを使ってもテストできます。つまりSAPGUIにアクセスできる場合はPostmanを使わなくてもよいと思います。

####インストール方法
Chromeの拡張として追加することができます。
https://chrome.google.com/webstore/detail/postman/fhbjgbiflinjbdggehcddcbncdddomop?hl=ja

####GETリクエストを実行
リクエストに以下のように入力します。
`http://<server>:<port>/sap/opu/odata/sap/<service>/<entitySet>?$format=json` 
<>には自分が使うサーバ、ポート、サービス名、エンティティセットが入ります。
Authentication Type、ユーザ名、パスワードを入力し、"Send"を押します。
<img width="943" alt="get.png" src="https://qiita-image-store.s3.amazonaws.com/0/276021/c6bd57f2-9ada-e6dd-4b33-5a09c58733f5.png">

結果、EntitySetが取得されます。
<img width="943" alt="get2.png" src="https://qiita-image-store.s3.amazonaws.com/0/276021/589b8da8-487a-50d1-df58-6c919e21f4a5.png">

####POSTリクエストを実行
POSTリクエストを実行するにあたり、まずx-csrfトークンというものを取得しておく必要があります。このため、まずは適当なデータセットに対してGETリクエストを実行します。その際、リクエストヘッダに以下を追加します。
Key: x-csrf-token
Value: fetch
<img width="715" alt="token.png" src="https://qiita-image-store.s3.amazonaws.com/0/276021/3be2c0b5-6566-647b-4829-5305c24632db.png">
すると、レスポンスヘッダにトークンが設定されて返されます。
<img width="714" alt="token2.png" src="https://qiita-image-store.s3.amazonaws.com/0/276021/cb443696-cd0a-c080-e200-78d7d628eade.png">

次にPOSTを実行します。ここではOrderを登録するメソッドを作ってあるのでそれを実行します。Content-Typeに"application/json"、x-csrf-tokenに上で取得したトークンを設定します。※Content-Typeがjsonなのは、bodyにJSONデータを渡すため
<img width="719" alt="post1.png" src="https://qiita-image-store.s3.amazonaws.com/0/276021/f7818e0f-19a0-f961-7197-74ecebadca93.png">

リクエストBodyに渡すデータを設定します（JSONLintでフォーマットをチェックしておくとよい）。"Send"を押してリクエストを実行します。
<img width="717" alt="post2.png" src="https://qiita-image-store.s3.amazonaws.com/0/276021/19ac7032-7921-f706-2429-1e868400c71f.png">

バックエンドから結果が返されます。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/276021/1f9d3182-fadf-8e4c-dc5e-50b1e7abb650.png)

エラーの場合はBodyに何らかのエラーメッセージが出ます。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/276021/338a6f54-5774-6776-200e-b8f0ded31251.png)