3. APIを呼ぶAPIの例
①Visual Stadio 2019を管理者として実行します
②新しいプロジェクトの作成をクリックします
③「ASP .NET Webアプリケーション」を選択し、次へボタンをクリックします
④プロジェクト名を入力し、次へボタンをクリックします
⑤「Web API」を選択し、作成ボタンをクリックします
⑥次のような画面が表示されます。
⑦ソリューションエキスプローラーから、Controllers>ValueControllers.vbをクリックします。デファルトでValueControllerができています。
api/valuesで呼ばれたときに動く、GetValuesを以下のように修正し、APIを呼ぶように修正します
' GET api/values
Public Function GetValues() As String
Dim url As String = "https://sys-link-ai-api.herokuapp.com/predict"
'-------ここからはAPI通信のお約束部分-------
'指定されたURLへのHTTP通信を生成して呼び出す
Dim req As HttpWebRequest = HttpWebRequest.Create(url)
' POST送信する文字列を作成
Dim postData As String = "{""feature"": [0.5,0.5]}"
' バイト型配列に変換
Dim postDataBytes As Byte() = System.Text.Encoding.ASCII.GetBytes(postData)
' POSTメソッド
req.Method = "POST"
' POST する為の仕様
req.ContentType = "application/json"
' POST送信するデータの長さを指定
req.ContentLength = postDataBytes.Length
'データをPOST送信するためのStreamを取得
Dim reqStream As System.IO.Stream = req.GetRequestStream()
'送信するデータを書き込む
reqStream.Write(postDataBytes, 0, postDataBytes.Length)
reqStream.Close()
'サーバーからのレスポンスを受け取る
Dim res As HttpWebResponse = req.GetResponse()
'レスポンス・ボディの取得と表示
'レスポンスのストリームを取得する
Dim resStearm As Stream = res.GetResponseStream()
'レスポンスを読み取る器を用意して
Dim sr As StreamReader = New StreamReader(resStearm)
'最後までレスポンスを読み込む
Dim ResHTML As String = sr.ReadToEnd()
'リソース解放
resStearm.Close()
sr.Close()
res.Close()
Debug.WriteLine(ResHTML)
Return ResHTML
End Function
⑧IIS Expressボタンをクリックし、APIサーバーを起動します。
⑨コマンドプロンプトから、curlコマンドで動作確認を行います。
※なお、POSTで呼ぶ場合には、以下のように指定します。
curl https://sys-link-ai-api.herokuapp.com/predict -X POST -H "Content-Type:application/json" -d "{\"feature\":[0.5,0.5]}"