https://rubykaigi.org/2019/presentations/sue445.html#apr20
こんにちは、エンジニアの村田です。今回はシンプルさとパフォーマンスを両立した API を作るためにはどうすればよいのかについて述べていきます。 背景 いままで API サーバーを作ってきて、シンプルな API にすればパフォーマンスが犠牲に、パフォーマンスを優先すれば実装が複雑になって保守が大変になるということを経験してきました。具体的には、 関連リソースの Entity が何重にもネストしていたり、同じリソースに一覧用、詳細用などの Entity があり実装、保守が大変 1. の問題を解消するためにシンプルな API にする 2. では N+1 の問題がありパフォーマンスが悪い 1. 2. の問題を解消するためにリソースの Entity はシンプルにしつつ、パラメーターで関連リソースを指定すると関連リソースの Entity を埋め込んで返すようにする 4. だと関連リソースの権限管理やペ
今回のテーマは「ConoHa API」と「OpenStack」です。ConoHaにはAPIが用意されており、各機能を操作できることはすでにお話ししてきました。一方、ConoHaはOpenStackを基盤として採用しており、APIの仕様もほぼOpenStackがそのまま使われています(一部独自の拡張がありますが、互換性を損なわないように考慮されています)。今回は「OpenStackとして」APIを使うことにフォーカスし、OpenStack公式のCLIツールを使ってみたり、VagrantからOpenStack APIを通じてConoHaにvagrant upしてみたいと思います。 OpenStack ところで、みなさんはOpenStackをご存じでしょうか? OpenStackはオープンソースで開発されている、クラウドを構築するためのソフトウェア群です。サーバ、ネットワーク、ストレージなど
Stephanie Condon (Special to ZDNET.com) 翻訳校正: 編集部 2016-11-16 11:35 Googleは米国時間11月15日、「Cloud Machine Learning」に新しいツールやサービスを追加したと発表した。機械学習をより利用しやすくするもので、企業にこの技術を活用する新しい手段を提案するものとなる。 1つ目として、Googleは全く新しいAPI「Cloud Jobs API」をリリースする。仕事の検索を支援するもので、検索用語、そして勤続年数や勤務地といった要素などの求職者の希望に基づいて、最適な求人を見つけるという複雑なタスクに対し、機械学習がシンプルなソリューションを提供できることを示すものとなる。 求人情報サイトのCareerBuilderやDice.comがCloud Jobs APIの初期テスターとなっている。Career
$ bin/rails g scaffold user name:string mail:string password:string invoke active_record create db/migrate/20151214145437_create_users.rb create app/models/user.rb invoke test_unit create test/models/user_test.rb create test/fixtures/users.yml invoke api_resource_route route resources :users, except: [:new, :edit] invoke scaffold_controller create app/controllers/users_controller.rb invoke test_un
トップニュース IBM News Twitter IBM News YouTube IBM News Facebook IBM、オープンソース、製品、エコシステムの革新により、エンタープライズAIを大規模に推進するwatsonxの次章を発表IBM、スカイアーチネットワークスを買収し、日本におけるマルチクラウド・ハイブリッドクラウドの包括的なクラウド・サービス・プロバイダーとしてお客様の変革とビジネス成長をさらに支援理研、IBMの次世代量子システムをスーパーコンピュータ「富岳」に連携日本IBM、港区虎ノ門の新本社に移設したIBM Innovation Studioを拡充し、さらなる共創を推進IBM、生成AIを活用してウィンブルドンのパーソナライズされたファンエンゲージメントを促進 ‹ › 最新ニュース latest news 2024年07月 9日 AI経営情報 IBM、StreamSets
RESTful APIの記述標準化を目指す「Open API Initiative」をマイクロソフト、Google、IBMらが立ち上げ。Swaggerをベースに 10年以上前、XMLの登場に続いてXMLベースのAPIを記述する標準フォーマット「WSDL」が提唱されました。 WSDLにはAPIの仕様がマシンリーダブルな形で記述されており、APIを呼び出すためのプロトコルやデータフォーマットをあらかじめ知ることができます。WSDLを利用することで、APIをコールするためのコードを自動生成することが可能でした。 しかしXMLベースのAPIは期待されたほど普及せず、現在ではよりシンプルなRESTful APIが事実上の標準となっています。 そしてRESTful APIのためのWSDLとも言うべき、RESTful APIのインターフェイスを記述するための標準フォーマットを推進する団体「Open AP
リクルートテクノロジーズの大杉です。 広島市立大学修士2回生の飯沼さんと一緒に、自然言語要約ツールを作りましたので、リクルートテクノロジーズのgithubアカウントにて公開します。このapiでは、入力した文章から、指定したパラメータ(行数など)に応じて、重要だと思われる文の抽出ができます。例えば、当ブログ当記事の直前のこの記事を3行で要約すると、以下のようになります。 1. “リクルートテクノロジーズでは、ここ最近、UXデザインの専門家とビッグデータの専門家が、協力してリクルートグループ内の各事業に入り、プロジェクトを推進していく事例が多くなっています。”, 2. “UXデザインでは、定性的なリサーチと定量的なアクセスログ解析を組み合わせて、ユーザ行動を可視化することは以前からやってきました。”, 3. “「成功体験とは何か」を定義して、きちんとデザインできるかが、UXデザインの大きな
昨日 Ginza.rb 第23回 APIのみのRailsアプリ「Rails API」を読もう! で Ginza.rb に初参加してきたので復習メモ。 ちなみに Ginza.rb は二周年だそうですよ。おめでとうございます! Ginza.rb の内容は Rails5 でとりこまれることが決まって目下議論中らしい Rails API についてのコードリーディングでした。 pull request RAILS API TO BE PART OF RAILS 5 Rails API ginza.rb 23th Rails API まだ Rails 本体にマージされていないので、普通の rails と rails-api で比較しながら使ってみました。 アプリ作成 $ gem install rails-api $ rails new blog_app # 普通の rails $ rails-api
このサービスで提供するリソースは、以下の3種類の表現を持ちます。 XHTML Media Type: application/xhtml+xml; charset=utf-8 標準的な Web ブラウザで表示することのできる形式です。ブラウザで表示させることが可能なので、人間が読みやすいのが特徴です。この表現は整形式の XML であるため、XML パーサーでパースして、プログラムから扱うことも可能です。住所の構造情報は class 属性で表現されています。全てのリソースのデフォルト表現になっています。 この表現は妥当な XHTML 1.1 になるはずですが、あえて DOCTYPE 宣言は付けていません。文字エンコーディングスキームは UTF-8 です。 http://zip.ricollab.jp/1120002 http://zip.ricollab.jp/search?q=大手町 ht
doorkeeper gem で API を作る方は doorkeeper-provider-app というサンプルの app/controllers/api/ 以下などをみればすぐにわかったのですが、 API を呼び出す方は OmniAuth の中でユーザーの情報を取り出す だけならすぐに出来たのですが、 コントローラーの中など呼び出す方法は doorkeeper-devise-client を見てもよくわからなかったので、まとめてみました。 動作確認バージョン provider 側 rails 3.2.14 doorkeeper 0.7.3 client 側 rails 4.0.0 devise 3.1.1 omniauth 1.1.4 omniauth-oauth2 1.1.1 oauth2 0.8.1 準備 まず Create a OmniAuth strategy for you
🗽 APIのサンプルTwitterを模倣したサンプル(?)が、公式のGitHubのREADMEに書かれていたので転載。 app/api/Twitter.rbを作成して、次のようなコードを書きます。 module Twitter class API < Grape::API # versionは:headerや、:paramなどもあり version 'v1', using: :path, vendor: 'twitter' format :json helpers do def current_user @current_user ||= User.authorize!(env) end def authenticate! error!('401 Unauthorized', 401) unless current_user end end resource :statuses do d
例外を利用して実装すると便利な場合が多い この投稿では、HTTP経由でJSONを返すようなWeb APIをRailsを利用して実装するとき、エラーレスポンスを返す場合の処理をどう実装するとやりやすいのか、というニッチな話題に触れる。APIでエラーを返したいとき、即ち400以上のステータスコードと共にレスポンスを返したいような場合、どう実装するのが良いか。もしリクエストの処理中にエラーが検出された場合、それ以降の処理を行わずに直ちに中断してエラーレスポンスを返したいという場合が多いため、例外を利用して実装すると便利な場合が多い。 例外を利用しない方が良い場合もある 1つのリクエストに複数の問題が含まれている場合、先に見つけた問題だけを報告するようなエラーレスポンスを返すのか、それとも問題を抱えながらも進めるところまで処理を進めて報告可能な情報を全て含むようなエラーレスポンスを返すのか、という
Google APIs Explorer Stay organized with collections Save and categorize content based on your preferences. The Google APIs Explorer is a tool available on most REST API reference documentation pages that lets you try Google API methods without writing code. The APIs Explorer acts on real data, so use caution when trying methods that create, modify, or delete data. For more details, read the APIs
Herokuが自ら実践しているAPIデザインガイドをGithubに公開した. “HTTP API Design Guide” このガイドは些細なデザイン上の議論を避けて,ビジネスロジックに集中すること目的としている.Heroku特有なものではなく,一般にも十分適用できる知見となっている. 最近は,モバイル向けにAPIをつくることも多いため,勉強もかねて抄訳した.なお内容は,HTTP+JSONのAPIについて基本的な知識があることが前提となっている. 適切なステータスコードを返す それぞれのレスポンスは適切なHTTPステータスコード返すこと.例えば,“成功"を示すステータスコードは以下に従う. 200: GETやDELETE,PATCHリクエストが成功し,同時に処理が完了した場合 201: POSTリクエストが成功し,同時に処理が完了した場合 202: POSTやDELETE,PATCHリク
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く