Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? これは Enchant の開発者である Vinay Sahni さんが書いた記事「Best Practices for Designing a Pragmatic RESTful API」1を、ご本人の許可を得て翻訳したものです。 RESTful な WebAPI を設計しようとすると、細かなところで長考したり議論したりすると思います。また、他の API に倣ってやってはみたものの、本当にそれでいいのか、どうしてそうしているのか分からない、何てことも少なくはないと思います。 この記事では、そのようなハマリどころについて Vinay さん
概要 元サイトの許諾を得て翻訳・公開いたします。 英語記事: Don’t Build a General Purpose API (4 Years Later) - Max Chernyak 原文公開日: 2025年12月11日 原著者: Max Chernyak 日本語タイトルは内容に即したものにしました。 私は2021年に、フロントエンド向けにわざわざ汎用のAPIを構築して苦労を増やしてはいけないと呼びかける記事を書きました↓(よろしければ本記事を読む前に目を通しておいてください)。 参考: Don’t Build A General Purpose API To Power Your Own Front End - Max Chernyak この記事はHacker Newsに2度取り上げられましたが、2度目は評判がよろしくありませんでした(その分議論は白熱しましたが)。推測ですが、2
PR TIMESのCDNをCloudFrontからFastlyに移行しました こんにちは、インフラチームテックリードの櫻井です。 今回はプレスリリース配信サービスの prtimes.jp で使用しているCDNをCloudFrontからFastlyに移行したことについ... なお該当のAPI以外へのリクエストは正常に処理できていたため、PR TIMESへのリクエストが一律でブロックされている状況ではなかったと考えられます。 根本原因の仮説と検証 ここまでの調査でわかったことは以下です。 該当のお客様から行われたメディアリスト保存APIへのAJAXリクエストは、501エラーとしてNew Relicに記録されている。 該当のお客様から行われたメディアリスト保存APIへのAJAXリクエストは、PR TIMESシステムに到達していない。 該当のお客様から行われた他のAPIへのリクエストは、正常にレス
はじめに Kaigi on Rails 2025で発表し、何人かの人といろいろ話しているうちに、モダンフロントエンドが面倒臭いのはJSON APIのせいではないかと考えるようになりました。そしてJSON APIそのものが悪いというよりは、JSON APIを必要以上に使う原因となっているSPAが問題ではないかと思っています。まだ考えは固まっていないのですが、まずは部分的に紹介したいと思います。 モダンフロントエンドはJSON基礎工事が大変 SPAのReactフロントエンドを作る場合、Hotwireなら不要だった多大な工数が新しく発生します。 APIエンドポイントのルータおよびコントローラから、JSON APIシリアライザ、クライアントサイドのルータ、JSON APIをfetchしてフォーマット変換する作業、さらにAPIの契約を文書化したOpen APIを作成します。ここには記載していませんが
STORES でエンジニアをしている片桐です。 STORES では店舗運営に関するさまざまなプロダクトを提供しています。これらのプロダクトは元々別の会社で運営されてきた完全に異なるプロダクト群で、アカウント体系から全く異なるシステムになっていました。近年はこれらのシステムを本格的に統合する取り組みを進めてきており、その中で統合のためにいくつかのシステムが新たに作成されてきました。 ある程度統合が進み、うまくいったところ・いかなかったところが見えてきた中で、これまでに作ったシステムの技術選定・システムの役割に対する課題感が見えてきました。 現在弊社ではこの課題を解決していくプロジェクトを進めています。その中の1つで、Goで作られたシステムをRuby on Railsで作られたシステムに移植する作業を行なっているので、今回はそれについて紹介させていただきます。 移植元のシステムの課題 今回別シ
こんにちは、osyoyuです。RubyKaigi 2025に行ってきました。 Day 2 Keynote "Performance Bugs and Low-Level Ruby Observability APIs" はプロファイラおたくの自分にとって実に心躍るセッションでした。地上最強のRubyプロファイラである ddtrace (Datadog) を作っているIvoが話してくれる!!!! Keynote Speakerが公開された瞬間の高まりをよく覚えています。当日ももちろんド最前で見てました。 最前すぎて右下が見切れてました 余談ですが、私の作っているプロファイラ “Pf2” も発表中でたびたび触れられて超うれしくなっていました。良すぎる。 ということで、人のフンドシで相撲を取るようで少々恐縮ですが、本稿ではひとりのプロファイラおたく & ddtraceファンとして、Ivo Key
APIs tend to expose endpoints that handle object identifiers, creating a wide attack surface of Object Level Access Control issues. Object level authorization checks should be considered in every function that accesses a data source using an ID from the user. Authentication mechanisms are often implemented incorrectly, allowing attackers to compromise authentication tokens or to exploit implementa
Intro CSRF という古の攻撃がある。この攻撃を「古(いにしえ)」のものにすることができたプラットフォームの進化の背景を、「Cookie が SameSite Lax by Default になったからだ」という解説を見ることがある。 確かに、現実的にそれによって攻撃の成立は難しくなり、救われているサービスもある。しかし、それはプラットフォームが用意した対策の本質から言うと、解釈が少しずれていると言えるだろう。 今回は、「CSRF がどうして成立していたのか」を振り返ることで、本当にプラットフォームに足りていなかったものと、それを補っていった経緯、本当にすべき対策は何であるかを解説していく。 結果として見えてくるのは、今サービスを実装する上での「ベース」(not ベスト)となるプラクティスだと筆者は考えている。 CSRF 成立の条件 例えば、攻撃者が用意した attack.examp
最近Railsで APIを作ろうと思って、Rails APIモードとDevise Token Authを使ってみたんですが、思わぬところでつまづいてしまいました。今回は、その問題を解決するまでの過程を、私なりにまとめてみました。 最初の状況 まず、こんな感じでプロジェクトを始めました: rails new my_api --api でAPIモードのRailsプロジェクトを作成 Gemfileにgem 'devise_token_auth'を追加 bundle install を実行 Devise Token Authの設定を行う ここまではスムーズに進んだんですが、rails s でサーバーを立ち上げて、routesを確認しようとブラウザから http://localhost:3000/rails/info/routes にアクセスしたら
けっこうガイドにも書かれているやん ガイドの方がわかりやすいから先にこっちを見て、足りなかったらapiドキュメント読むのが良さそう
こんにちは。SREのkyontanです。Rubyが大好きなのでRubyの話をします。ちなみにリクルートはRubyKaigi 2024へGold Sponsorとして協賛しています! *1。ぜひ沖縄でお会いしましょう。 これはあるアプリケーションのメモリ消費量を示すグラフなのですが、まさかgemを入れ替えるだけでこんなに嬉しい変化が見られるとは思っていませんでした。今日はそんなgemの話をします。 話は遡って2023年4月のある日、インターネットを眺めていたところ、ShopifyがpitchforkというOSSを公開したという情報が目に留まりました。 調べてみると、どうやら著名なRackサーバー実装の1つであるunicornの派生版であり、メモリ使用量の削減に特化しているらしいのです。 github.com これはスタディサプリ小中高のあのリソースドカ食いマイクロサービス第一位である api
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
YouTube Embedded Players and Player Parameters コレクションでコンテンツを整理 必要に応じて、コンテンツの保存と分類を行います。 概要 このガイドでは、アプリケーションに YouTube プレーヤーを埋め込む方法と、YouTube 埋め込みプレーヤーで使用できるパラメータの定義を紹介します。 IFrame URL にパラメータを追加すると、アプリケーション内での再生方法をカスタマイズできます。たとえば、autoplay パラメータを使用して動画を自動再生したり、loop パラメータを使用して動画を繰り返し再生したりできます。enablejsapi パラメータを使用して、IFrame Player API を介してプレーヤーを制御できるようにすることもできます。 このページには、任意の YouTube 埋め込みプレーヤーでサポートされるすべてのパ
みなさん、こんにちは。Togetterを運営するトゥギャッター社の代表のyositosiです。2023年も年末で仕事納めということで、今年を振り返るコンテンツを残しておこうと思います。主にXとネットメディアを取り巻く話題を中心にお届けします。 1月:サードパーティー製Twitterクライアントの一斉締め出しTwitterが他のSNSに比べて、圧倒的に優れていた点に、機能の大部分をAPIという形で解放して、多くの開発者が優れた関連アプリを作れたことにあると思います。特に、その初期においては、ガラケーやスマホ向けのアプリはTwitterオリジナルではなく、第三者が作ったアプリで支えられていました。 その後、公式のアプリとして買収されたものもありましたが、引き続き多くの非公式アプリが、ユーザのTwitter体験をそれぞれに最適化していたのは間違いないと思います。 とはいえ、本体の機能追加とともに
OverviewThe Gyazo API can be used in a wide array of apps to upload new images, show a Gyazo user's images, and more. It provides a RESTful API for HTTP requests and returns a response in JSON. This should be familiar to anyone who has used major APIs before such as ChatGPT API and Perplexity API. PreparationTo use the API, you need an access token. Follow these steps to obtain your access token:
React + Rails(API)構成でのアプリ開発について学習している中で、下のようなコードと出会いました。 # app/controllers/application_controller.rb class ApplicationController < ActionController::Base include DeviseTokenAuth::Concerns::SetUserByToken skip_before_action :verify_authenticity_token end RailsのCSRF攻撃対策 Railsは、CSRF攻撃対策のためのトークンを生成し、セッションで_csrf_tokenというキーでユーザーに保持させる。 デフォルトでは、rails newで自動生成されるビューであるapplication.html.erb上のメタタグ<%= csrf_me
CoderDojo Advent Calendar 2023 2日目の記事です。 2023年をふりかえってみて、一番ワクワクした体験を共有します。 大人にも学びがあるCoderDojoCoderDojoは非営利のプログラミングクラブです。CoderDojoを略して道場、道場に集まる子どもたちをニンジャ、サポートする大人たちをメンターと呼びます。私はプログラミング教育に興味があり、2023年6月にメンターとしてはじめて参加しました。 メンターの役割はプログラミングを教えることではありません。メンターの役割と心得はCoderDojo吉祥寺のメンターをする人へにまとまっています。コンピューターはガチャガチャいじっても意外に壊れません。ニンジャが試行錯誤を繰り返すうちに、自分なりの解決策を見つけることもあります。自分の工夫で動かすことができた!という貴重な成功体験を、横から奪ってはいけません。私は
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く