ASP.NET Core APIについて僕が調べたことが、雑にまとまっています。API接続テストの仕方で、これ以外のおすすめのやり方がありましたら、教えていただけると幸いです。実装コードもあるので、そちらもよかったら参考に。
こんにちは、松井です。
このページには、僕がASP.NET Core APIについて調べたことが雑にまとまっています。
調べただけで、信ぴょう性が定かでないモノもありますので、ご参考程度にご利用ください。
このページは、コメント欄を開放しておりますので、
質問・訂正依頼等ありましたら、そちらへよろしくお願いいたします。大変助かります。
もしかしたら、ひとによっては、
実装コードすべてみたほうが早いかもしれません。
>>GitHub にあがってますので、こちらをどうぞ。
どんな機能が実装されているかは、ここ👇にまとめてありますので、
気になるものを使ってみては! と、思います。
スキャフォールディング
メニューから、
「新規スキャンフォールディング アイテムの追加」
>> 「Entity Framework を使用したアクションがあるAPIコントローラー」
を実行するときの話。
スキャフォールディングに必要な前準備
・Entitiyの作成
・ContextにEntityの追加。(Contextがなければ、作成する)
・(してなければ、Program.csに、DbContextの設定を行う)
参考:チュートリアル: ASP.NET Core で Web API を作成する
スキャフォールディングの後に必要な作業
・Migrationの作成 + DBへの反映
【例 )TwitterTweetContextを追加した場合】
以下のコマンドを実行。
$ dotnet ef migrations add InitialCreate -c TwitterTweetContext
$ dotnet ef database update -c TwitterTweetContext
実行後に、ずらずら~~っと、
色々コンソールに出力された後に、
「Done.」
と表示されたら、成功です。
(これが出てない場合は、いまいちど確認が必要です。)
【確認方法】
今回作成したAPIに対して、HTTPリクエストをかけると、エラー内容をいろいろ教えてくれます。
下記で紹介している「REST Client」を使うと、エラー内容もわかりやすいどす。
【エラー:パッケージの復元に失敗しました】への対応
【 現象 】
「新規スキャンフォールディング アイテムの追加」
>> 「Entity Framework を使用したアクションがあるAPIコントローラー」
を実行したあとに、
「パッケージの復元に失敗しました」というエラーメッセージが表示される。
【 原因】
インストールしているパッケージのバージョンが揃っていなかったことが原因。
【 解決方法 】
「NuGetパッケージマネージャー」から、更新プログラムをすべて走らすことで解決。
あまり意識したことありませんしたが、
バージョンが変わると、こんなエラーが起こるんですね。
これに気づくのに、40分くらいかかりました…。平日の夜の時間が ( ´ー`)y-~~
参考:VisualStudio2019でスキャフォールディングで失敗する原因を突き止めたい。【エラー:パッケージの復元に失敗しました】
API接続テスト
コンソールで実行してテストする
■初回接続(コンソールで実行)
httprepl https://localhost:7233/api/twitter --verbose
■それ以降
connect https://localhost:7233/api/twitter --verbose
正しく設定されていれば、
「Successful」と表示されます。
(出ない場合は、どこかにエラーがあります。)
エラー内容は、
「REST Client」を使った方が分かりやすいので、
最近は、もっぱら「REST Client」をよく使っています。
VS Codeで「REST Client」でテストする [ ★おすすめ ]
「REST Client」を使えば、
HTTPリクエストを送信・レスポンスの確認が VS Code上から簡単にできます。
これは、とってもオススメです。
例えば、GETリクエストの場合、
###
GET https://localhost:7233/api/twitter/users
VS Codeの画面で、こんな感じで実行できます。
左タブの「~.http」ファイルに、HTTPリクエストを書き込んで、
それを、選んで、実行していけます。
ちなみに、これの超便利ポイントは、
httpコマンドをテキスト保存しておけるところです。(地味ですが、これが強い)
僕の場合、httpコマンドを使う機会が少ないので、
毎回うろ覚えで動作確認しているんですけど、
前回に使用したhttpコマンドが残っていれば、それだけでだいぶ助かります。
いままでも、メモ帳に残したりしてましたけど、
書き忘れたり、途中からサボって書かないことも多かったんですよね。笑
でも、「REST Client」であれば、
そこに書いたことが、そのまま実行されて、そのまま保存できるので、
コピペの手間と、メモの管理がかなーーり楽になります。
あと、「Gitで管理しておけば、他のひとも使える」っていうのもポイント高いですね。
▼ ちなみに、POSTのときはこんな感じです。
###
POST https://localhost:7233/api/twitter/users
Accept: application/json
Content-Type: application/json
{
"ownedUserId": 123456,
"div": "F",
"tag": "",
"name": "0H1de",
"screenName": "ひでりん"
}
「REST Client」について、詳しくはこちらの記事をどうぞ。
参考:VS Code上でHTTPリクエストを送信し、VS Code上でレスポンスを確認できる「REST Client」拡張の紹介