ユニファ開発者ブログスマートフォン用の表示で見るユニファ開発者ブログユニファ株式会社システム開発部メンバーによるブログです。APIこんにちは、チョウです。APIを利用できるようにクライアントを作ってみました。Clientのライブラリはnet/httpです。ほかにいろいろライブラリがありますが、依存を増やしたくないため、見送りました。APIでよく見られるケースです。最後のtimeoutはリクエストの内容ではなくて、クライアントは一定の時間内で返せる機能です。net/httpのドキュメントを見ると、すぐできそうなのはGETのケースです。res.is_a?(Net::HTTPSuccess)そしてPOSTの方はformが対応してるっぽいです。net/httpのソースコードを読むしかないのか。調べたところ、このコードでいけそうです。http.request(request)endPUTとPATCHは同じ方法で出来ます。DELETEのリクエストにはbodyがないため、GETと似たようなやり方です。最後のtimeoutはNet::HTTP.startのblockで、httpで設定を変えるらしいです。open_timeoutとread_timeout2つのtimeout設定に分けてます。open_timeoutはsocket接続する時使われるもので、read_timeoutはデータを送ったあとサーバーのレスポンスを待つtimeoutです。APIのクライアントに必要なものが揃いましたので、クライアントを作ってみます。実際のコードではnamespaceがありますが、ここでは省略しました。form_paramsとbodyで別々のケースを対応する想定です。jsonつぎはClientです。endendPOSTのform、特にファイルが入ってるケースは直接bodyを入れることができないので、set_formを通してboundaryなどを付け加えてもらう必要があります。最後はResponseとClientConfigです。endend特に注意すべきなのは、net/httpのresponseで取ったstatus_codeのタイプは数値ではなく、文字列です。アプリケーションのコードは基本数値を想定してるので、予め数値に変換するほうをおすすめします。あとなぜかResponseから直接全部のHEADERを取れなくて、コピーの方法でなんとかなりました。endendClientConfigはとくに複雑ではありません。response.body_as_stringもっと使いやすいようにmoduleを用意しました。http_get('/')だけで使えます。ご参考になれば幸いです。botを作ってみたこんにちは、tjinjinです。2.0を使った画像分類こんにちは、R&Dの宮崎です。距離センサーでトイレセンサーを作ってみた皆様こんにちは。ユニファでは様々な職種...2018-01-29RailsアプリからGoogleフォトに写真をアップロードしてみるこんにちは、Webエンジニアの本間です。Detection月別アーカイブスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。