Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?
チームメンバー毎でも書き方が違う時があるので、どういうやり方がありそうで、どういう時にそれを適用したら良さそうかを考えたメモです。 Faraday Ruby 製の HTTP Client です。Ruby Tool Box の HTTP Client カテゴリでは 2 位なので結構使われているライブラリなのではないかと思います。 lostisland/faraday - Github 本家の README を見てもらうと分かる通り、いくつかの adapter を選択できるようになっています。 また faraday_middleware を代表とした middleware といった形で拡張可能なのも特徴の一つのようです。 Qiita 内でもたくさん見つかりますね Qiita を faraday で検索 まずエラーもリトライも考慮しない書き方 response を受け取るまでは faraday
Ruby の HTTP クライアントライブラリ Faraday が便利そう Ruby の HTTP クライアントライブラリ Faraday が便利そう API ラッパの開発には RestClient gem だとか OAuth の必要なものは Net/HTTP + OAuth gem を使ってた Twitter gem や Instagram gem など API ライブラリのソースを読んでみると Faraday gem というものがよく使われてた なんとなく気になったので Faraday について調べてみた ついでに Tumblife gem を Faraday を使うようにした 以下そのメモ Faraday って何? Faraday is an HTTP client lib that provides a common interface over many adapters (su
response.status # => 200 response.headers # => {"server"=>"Fly/c375678 (2021-04-23)", "content-type"=> ... response.body # => "<!DOCTYPE html><html> ... Faraday Connection The recommended way to use Faraday, especially when integrating to 3rd party services and API, is to create a Faraday::Connection. The connection object can be configured with things like: default request headers & query paramet
第1章 Faradayをはじめよう 001 Faradayとは? 002 セットアップ 003 使ってみよう 第2章 基本的な使い方 004 GETリクエスト 005 POSTリクエスト 006 PATCHリクエスト 007 DELETEリクエスト 008 コネクションを使う 009 パラメータを指定する 010 リクエストヘッダを指定する 011 レスポンスを使う 012 ミドルウェアを使う 013 アダプタを使う 014 アダプタの動作をカスタマイズする 015 JSONをPOSTする 016 SSLを使う 017 並列処理をする 018 パラメータのシリアライズ方法を変更する 019 ファイルをアップロードする 020 プロキシを使う 021 タイムアウトを指定する 022 リクエストをスタブしてテストする 第3章 Faradayミドルウェアを使う 023 ミドルウェアを使う 024
まずは GET リクエストを送信してみよう。 require 'faraday' res = Faraday.get 'http://httpbin.org/get' puts res.body レスポンスが JSON の場合、ミドルウェアを使う。 require 'faraday' require 'faraday_middleware' client = Faraday.new 'http://httpbin.org' do |b| b.response :json, :content_type => /\bjson$/ b.adapter Faraday.default_adapter end res = client.get 'get' puts res.body['headers']['User-Agent'] 次は POST リクエストを送信してみよう。 require 'fa
Railsアプリケーションで外部APIを使う場合に、導入していた Faraday。v1からv2にアップデートしており、保守性を考慮して少し仕様が変わっていた。Faradayの使い方を備忘録として残しておく。 Ruby:v3.0.1 Ruby on Rails : v6.1.3.2 Faraday : v2.3.0 Faradayとは インストール Faraday Connection JSON Request Middleware JSON Response Middleware Authentication Middleware Instrumentation Middleware GET,POST,PUT,PATCH,DELETE POST 'application/x-www-form-urlencoded' Tokenを上書きする場合 まとめ Faradayとは Faraday i
CloudFormationの利用を強制されるのがツラく、2023年時点で脱JetsしてRailsに移行しています。 ※ JetsからRailsへの移行はとても楽でした。 ※ 現在はTerraform + Railsで快適に運用しています。 これはなに? 普段からRubyを使っているのですが、バッチ主体のシステムを開発するにあたり安価にサーバーレスを使いたく、Ruby on Jetsを選択して半年ほど運用した上での共有です。 Ruby on Jets Ruby on Jetsの特徴 Railsライク書いたコードでAWSのアーキテクチャを扱えるフレームワークです。 これらのRailsに慣れた人なら見覚えのあるコマンド群が使える。 jets new jets generate scaffold jets db:migrate jets server jets console jets depl
. ├── Gemfile ├── Gemfile.lock ├── Procfile ├── README.md ├── Rakefile ├── app │ ├── controllers │ │ └── application_controller.rb │ ├── helpers │ │ └── application_helper.rb │ ├── javascript │ │ ├── packs │ │ │ ├── application.js │ │ │ └── theme.scss │ │ └── src │ │ └── jets │ │ └── crud.js │ ├── jobs │ │ └── application_job.rb │ ├── models │ │
※ この記事は2019年7月12日に作成した とってもRailsライクなサーバーレスフレームワーク「Ruby on Jets」を本番環境に導入した話 - LiBz Tech Blog と同じ内容です はじめに こんにちは!先日26歳を迎え、30歳への恐怖感が着々と増してきた渡邊です。 今回が3回目のブログ投稿になります。 前回のKubernetes(GKE)にお安く入門するではたくさんのブックマークをいただきありがとうございました。 今回は実際に業務での利用をしはじめたRailsライクなRuby製 サーバーレスフレームワーク **「Ruby on Jets」**について書きます。 経緯 自分が開発を担当しているプロダクトには、求職者の方と弊社のキャリアアドバイザーがLINEを介してメッセージのやりとりができるような機能があります。 この機能はLINEのMessaging APIを利用して実
GraphQLの特徴 GraphQLはGitHubやFaceBookなども採用している新しい、APIの形式です。 特徴としては、以下の点が挙げられます。 エンドポイントが1つしかない クエリを実行することにより、自身に必要な情報のみをAPIで取得できる エンドポイントが1つしかない RESTの形式の場合は、各リソースの操作ごとにエンドポイントがありましたが、GraphQLでは、単一のエンドポイントしかありません。 例えば、RESTの場合、Userというリソースにアクセスするには、 GET: /users POST: /user PUT: /user/:id DELETE: /user 上記のように、複数のエンドポイントが存在していました。 GraphQLでは、「POST: /graphql」 この1つだけ定義し、必要なリソースはクエリで定義する形になります。 必要な情報のみをAPIで取得で
はじめに 初めまして、hinokageと申します。 Qiitaへの記事投稿初めて且つ、 プログラミングスクールを卒業したての知識で本記事を書きましたので お手柔らかにお願いいたします。 経緯 「Annict」という、有志が開発しているアニメ関連の情報が網羅してあるDBのGraphQLAPIが公開されています。 Railsでアプリ制作をしている際、制作していたアプリ内でこれを利用するためRailsからGraphQLAPIを叩く方法を調べたところ、「Railsで制作したアプリをAPIにする方法としてGraphQLを使用する」という内容の記事は結構な数ヒットするものの、「Railsアプリ内から公開されているGraphQLAPIを叩いてデータ取得する」という内容の記事が全くヒットせず、実装に非常に苦しみました。 私と同じように「有志が制作したGraphQLAPIをRailsで利用したい!」という方
概要 GraphQL Rubyのバージョン1.8~以降で導入されたClass-basedの書き方を使用し、簡単なAPIを作成する方法を紹介します。 ネット上でClass-basedの書き方に関する記事が少なかったので、誰かの助けになれば幸いです。 GraphQL,GraphQL Rubyの基本概念等は以下で学習して頂けます。 GraphQL入門 - 使いたくなるGraphQL - Qiita GraphQL Rubyに関して GraphQL公式 How to GraphQL - The Fullstack Tutorial for GraphQL GraphQL with Ruby on Rails ユーザーが記事(post)の取得、作成、更新、削除を行える簡単なapiをRuby on RailsとGraphQLを用いて作成します。 ソースコードはこちらから確認する事ができます。 Inst
冪等なAPI Stripeのブログ記事を読んで、冪等なAPIの設計について調べてみました。 すべてのAPIのリクエストは失敗する可能性がある (クライアントとサーバーによる)分散システムでは、すべてのAPIは失敗する可能性があり、まず考えられるのは以下のような理由です。 ・The initial connection could fail as the client tries to connect to a server. ・The call could fail midway while the server is fulfilling the operation, leaving the work in limbo. ・The call could succeed, but the connection break before the server can tell its cli
受け取ったJSONをそのまま別のところに受け流す、みたいな処理の時に取る手法に関してググってもストレートヒットしなかったのでメモ。 環境 rails (5.2.0) 経緯 こんなJSONをPOSTで受け取るエンドポイントがあった場合 { "title": "タイトル", "body": "こんにちわ", } Rails上ではよしなに params の配列に入れてくれるので params["key名"] で取得できるようにしてくれる。 params["title"] # => "タイトル" しかし、仮にJSONのstirngそのものが欲しい場合はどうするか?という場合。 やり方と例 request.body.read を使う。そうするとbodyまんまのStringが取得できる 参考リンク RailsでPOSTリクエストのbodyをJSONで受け取る - あんパン
Rails TutorialやProgateを一通り終えた人が、 実際にリリースされてるプロダクトを作るときによく利用されるTipsをまとめていきます。 まずはRoutesに関してです。 Routes 概要 これまでは、 get 'users/index' => 'users#index' のようにHTTPメソッドを用いて定義していましたが、RESTを利用した方がもっと効率的です。 今回はRESTにまつわる実戦で使えるTipsを見ていきます。 なお、手で動かしながら結果を見る方法として、 サーバーを立ち上げて http://localhost:3000/rails/info/routes でブラウザから見るのがいいです。 rorensu2236さんの記事をすごい参考にしてます。 ありがとうございます。 HTTPメソッドの別の書き方 Progateで学んで来たような書き方の他にとりあえず三種
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く