タグ

RESTに関するrochefortのブックマーク (22)

  • DHH流のルーティングで得られるメリットと、取り入れる上でのポイント - KitchHike Tech Blog

    はじめに こんにちは。KitchHikeエンジニアの小川です。KitchHikeでは主にサーバーサイドを担当しています。 少し前のものですが、「DHHはどのようにRailsのコントローラを書くのか (原文)」というすばらしい記事があります。Railsのコントローラ分割の(DHH流)ベストプラクティスについて解説した記事なのですが、私はこの記事に大変感銘を受け、KitchHikeのルーティング定義にもこのプラクティスを取り入れるようになりました。 日はこのDHH流ルーティングを取り入れることで得られるメリット、実際の routes.rb でのルーティング定義のしかたについて紹介したいと思います。 DHH流ルーティングとは?何がうれしいの? 詳しくは元記事を是非とも読んで下さい・・・なのですが、かいつまむと、ここで示されているのはたったひとつの単純明快なルールです。 コントローラはデフォルト

    DHH流のルーティングで得られるメリットと、取り入れる上でのポイント - KitchHike Tech Blog
  • GraphQL でモダン API を実装する #reinvent | DevelopersIO

    reInvent:2019 のセッション、Building modern APIs with GraphQLのまとめです。 Demo セッションはサンプル APIから全く同じデータをそれぞれ REST API から取得する場合と GraphQL API で取得する場合のランタイムでの実行の違いについての解説から始まります。 デモに利用されたサンプルデータ、films.jsonやpeople.jsonはすべてこちらのレポジトリから確認できます。 REST API サンプルデータから、Luke Skywalkerが登場するスターウォーズ映画に登場する全てのキャラクターのリストをそれぞれ REST APIGraphQL API から取得します。まずは RESTAPI の実装をみてみます。 main.js async function runREST() { const LukeURI =

    GraphQL でモダン API を実装する #reinvent | DevelopersIO
  • Web API(REST API)のURL設計 | DevelopersIO

    111222は製品のIDです。 ここまでは割と一般的だと思うのですが、実際にWeb APIを設計していると、もう少し複雑なものも出てきます。 自分のリソース、他人のリソース 例えばarticles(記事)というリソースがあったとき、 GET /articles/333444 とすると、その記事が取得できるAPIになりそうですが、333444の部分を他人の記事のIDにした場合、それは取得できてよいのでしょうか。「自分の記事は取得できるが、他人の記事は権限がある場合のみ取得できるようにしたい」とするケースもあるとでしょう。 その場合、まず「GET /articles/333444」の方は自分の記事のみを取得するAPIとします。 そして、他人の記事を取得するAPIを以下のように別途用意します。 GET /users/999888/articles/555666 このように/users/99988

    Web API(REST API)のURL設計 | DevelopersIO
  • RESTful API のおさらい - onk.ninja

    RESTful API のおさらい 前後リンク RESTful API のおさらい Rails での JSON API 実装まとめ スキーマファースト開発 The NEXT of REST REST の歴史 REST (REpresentational State Transfer) という言葉は 2000 年に Roy Fielding の博士論文で初出しました。 (思想としてはその前からあった? REST 入門) 日では 2005 年ぐらいから徐々に流行りだして、 2006 年に WEB+DB Press で特集や連載が組まれる等が行われ、 (Rails 2.x が RESTful を打ち出した) 2007 年の終わりには web 開発者の間では一般化した言葉になっていたって印象。 なぜ REST が必要になったのか はるか昔はメインフレーム上で全部入りのアプリケーションを開発してい

    RESTful API のおさらい - onk.ninja
  • DHHはどのようにRailsのコントローラを書くのか | POSTD

    私たちの救世主DHH™は最近の Full Stack Radioのインタビュー で、 Basecamp の最新版で彼がどのようにRailsのコントローラを書いたかを説明しています。下記は、彼のすばらしい話を書き取ったものです。 これまでに思うようになってきたのは、「RESTの原則に従うには、どのタイミングで新たなコントローラを作るべきかを一度決めたら、ほぼ異例なくその原則を遵守するべきだ」ということです。いつだってその方がうまくいくんです。自分の作ったコントローラの状態を悔やむのは決まって、作ったコントローラの数が少なすぎた時です。多くの処理を任せようとしすぎてしまうんです。 そこでBasecamp 3では、ある程度理にかなったサブリソースがあれば、毎回コントローラを分割していきます。フィルタなどの場合ですね。例えば画面があって、それがある状態になっているとします。もしこれにいくつかのフィ

    DHHはどのようにRailsのコントローラを書くのか | POSTD
    rochefort
    rochefort 2017/08/07
    コントローラが元々持っているRESTアクションやデフォルトの5つの機能にはないメソッドを付け加えたいと思ったら、いつだって新しいコントローラを作る。それだけでいいのです。
  • RailsでのfavoriteのURL設計 - ぶろぐ。@はてな

    http://d.hatena.ne.jp/r7kamura/20110505/1304577667がすごいなと思って、routes.rbの書き方の例についてコメントしたのですが、自分で書いておいて後で「unfavorite」はちょっとまずいかなと思ったので、favorite(いわゆるお気に入り、スター)はどういうふうに設計すればいいのか考えてみました。 構造はよくある感じの、 tweet has_many favorites user has_many favorites 任意のツイートに任意のユーザーがお気に入りをつけられるというもの。別にツイートじゃなくても何でもOKです。 ブログのコメントにはこのように書きました。 (1) resources :tweets do member do post 'favorite' post 'unfavorite' end end ルーティングは

    RailsでのfavoriteのURL設計 - ぶろぐ。@はてな
  • REST API設計者のための有名APIのURL例 - Qiita

    Register as a new user and use Qiita more conveniently You get articles that match your needsYou can efficiently read back useful informationYou can use dark themeWhat you can do with signing up

    REST API設計者のための有名APIのURL例 - Qiita
  • 「WebAPI 設計のベストプラクティス」に対する所感 - Qiita

    「翻訳: WebAPI 設計のベストプラクティス」を読んで色々と思うところがあったので書きました。 上記の記事は訳文でありますので、正しくは「Best Practices for Designing a Pragmatic RESTful API」に対する所感と述べた方が良いのかもしれませんが、日語で通して読めるよう Qiita に投稿された訳文に対する所感として書いています。 以下では「翻訳: WebAPI 設計のベストプラクティス」並びに「Best Practices for Designing a Pragmatic RESTful API」は「当該記事」と表現します。 観点 当該記事では「○○とした方がよい」との意見に対してそうすべき理由が明らかになっていないか、もしくは表現が曖昧な場合が目立っていると感じました。設計は実装のようにプログラム言語仕様が制約を与えられないため、意図

    「WebAPI 設計のベストプラクティス」に対する所感 - Qiita
  • 翻訳: WebAPI 設計のベストプラクティス - Qiita

    これは Enchant の開発者である Vinay Sahni さんが書いた記事「Best Practices for Designing a Pragmatic RESTful API」1を、ご人の許可を得て翻訳したものです。 RESTful な WebAPI を設計しようとすると、細かなところで長考したり議論したりすると思います。また、他の API に倣ってやってはみたものの、当にそれでいいのか、どうしてそうしているのか分からない、何てことも少なくはないと思います。 この記事では、そのようなハマリどころについて Vinay さんなりの答えを提示し、簡潔かつ明快に解説してくれています。 今後 WebAPI を設計される方は、是非参考にしてみてください。 なお、誤訳がありましたら編集リクエストを頂けると幸いです。 まえがき アプリケーションの開発が進むにつれて、その WebAPI を公

    翻訳: WebAPI 設計のベストプラクティス - Qiita
  • リソースの一部更新におけるURL設計 - Qiita

    概要 Webアプリケーションにて、リソースの一部更新を行う際、どのようにURL設計を行うとシンプルで美しいか(当はそこまで考えていなかったけど)悩んでいたところ、 @t_wada さんから素敵な設計指針をご教示いただきました。 記事はその内容に加えて、実際に自分で行ったこと、調べたこと、思った事など、まとめております。 あらすじ 数週間前にSIピラミッドからヒモなしバンジーを決めてWebの世界に飛び込んだ私は、小さな小さなWebアプリケーションをrails newから手探りで作っていました。 そんなとき、簡単なリソースの一部更新機能をどう実装したもんかなーと悩んでました。以下、当時(といっても先週)の超雑なぼやき。 リンクをクリックしてモデルの一部を変更するのはどうしたらいいんだろう。 例)不参加をクリック -> 某カラムをtrueからfalseへ リクエストオブジェクトに対象カラムの

    リソースの一部更新におけるURL設計 - Qiita
    rochefort
    rochefort 2016/03/20
    ええ話や
  • RESTのベストプラクティス | POSTD

    現在ではREST APIはとても一般的な話題です。ほとんどすべてのWebアプリケーションの一部分となっています。シンプルで一貫性があり実際的なインターフェースは必須です。これは皆さんのAPIを他の人が使うことをとても容易にします。皆さんにとってはRESTの実践が日常的に感じられるかもしれませんが、RESTをあまり尊重しない人々もよく見かけます。これがRESTについて投稿するきっかけでした。 この記事にはRESTfulなAPIを設計する時に考慮すべきベストプラクティスがあります。 注意 : ここでのベストプラクティスは、私が過去の経験に基づいて良いと考える事例です。もし違う考えをお持ちであれば、お気軽にメールをくだされば意見交換できると思います。 APIのバージョンを示す APIのバージョンは必須であるべきです。これがあると時間が経ってAPIが変わっても影響を受けません。その方法の1つはUR

    RESTのベストプラクティス | POSTD
  • Hypermedia: The Missing Element to Building Adaptable Web APIs in Rails

    RubyKaigi 2014 http://rubykaigi.org/2014/presentation/S-ToruKawamura Japanese enlargement version http://www.slideshare.net/tkawa1/rubykaigi2014-hypermedia-the-missing-element-enlarged-jaRead less

    Hypermedia: The Missing Element to Building Adaptable Web APIs in Rails
    rochefort
    rochefort 2014/09/19
    Hypermicrodata
  • 10 Best Practices for Better RESTful API | Thinking Mobile

    Do not use verbs: /getAllCars /createNewCar /deleteAllRedCars 2. GET method and query parameters should not alter the state Use PUT, POST and DELETE methods  instead of the GET method to alter the state. Do not use GET for state changes: GET /users/711?activate or GET /users/711/activate 3. Use plural nouns Do not mix up singular and plural nouns. Keep it simple and use only plural nouns for all r

    10 Best Practices for Better RESTful API | Thinking Mobile
  • なぜ html の form は PUT / DELETE をサポートしないのか? - Block Rockin’ Codes

    注意 内容については一切保証しません。 ここでは、主に W3C ML での議論や各種仕様などに基づいて書いています。 ここに書かれていることが正しいかどうかは、自身で判断して下さい。 事実としておかしいところなどは、コメントでどんどん指摘して下さい。遠慮はいりません。 ただし、このエントリでは「form が PUT/DELETE をサポートするべきかどうか?」の議論はしません。 「REST の是非」や「PUT/DELETE の意義」についても議論する気はありません。 ここでやっているのは、あくまでもどういった議論の末現状があるのかの調査です。 そうした意見がある場合は、 W3C などに投稿するのが最も有益だと思います。 History 2014/03/29: 公開 2014/03/29: XForm と XHTML の関係を明確化(thanx koichik) 2014/03/29: HT

  • なぜ html の form は PUT / DELETE をサポートしないのか?

    なんで html の from は PUT / DELETE ができないのか、「セキュリティ的理由」とか「歴史的経緯」とか、わかったような分からないような説明はよく聞くけど、実際なんでなのか調べてたら色々教えてもらった話。 ここまでわかったことを blog にまとめました。 / “なぜ html の form は PUT / DELETE をサポートしないのか? - Block Rockin’ Codes” http://jxck.hatenablog.com/entry/why-form-dosent-support-put-delete

    なぜ html の form は PUT / DELETE をサポートしないのか?
    rochefort
    rochefort 2014/06/20
    むむ、確かになんでなんだろう。
  • You don't need API version 2 - yohei's diary

    周回遅れ感が半端ないけどバージョニング関連で色々読んで・聞いて思ったことを書く。 APIのバージョニングは限局分岐でやるのが良い - Hidden in Plain Sight Kazuho's Weblog: 拡張可能なWeb APIの設計原則と、バージョン番号を使う理由について Rebuild: 35: You Don't Need API Version 2 (Kenn Ejima) rest - Best practices for API versioning? - Stack Overflow RESTfulなサービスのバージョンングから得られた知見 RESTとバージョニング 基的にいわゆる狭義のRESTとAPIのバージョニングは何も関係ない。強いて言えば、HATEOASはバージョニングにも使えるよ、というのがREST信者の主張であるものの、それが正しい(というか実用的)かど

    You don't need API version 2 - yohei's diary
    rochefort
    rochefort 2014/03/16
    rebuild.fm出演フラグが立ったな
  • リソースモデリングパターン

    Webアプリケーションについて、RESTfulなURL・リソース設計のパターンを見出すことで、 どのパターンかを判断するだけで、既存の Good Practice が適用できる 名前をつけて呼べるようにしたい Railsなどのフレームワークで簡単に適用できるようにしたい ということを目指しています。 ほんとうに役立つか これはパターンと言えるのか もっと他にもある だいぶ粒度がバラバラ 名前の付け方(パターンは名前重要) など、ぜひご意見をください。 パターン Collection & Member Resource パターン Singular (Singleton) Resource パターン Filtered Collection パターン Filtered Subresource パターン Multi-member Resource パターン Partial Resource パター

    リソースモデリングパターン
  • RESTful Web アプリの設計レビューの話

    Hypermedia: The Missing Element to Building Adaptable Web APIs in Rails (増補日語版)Toru Kawamura

    RESTful Web アプリの設計レビューの話
  • Edge Rails: PATCH is the new primary HTTP method for updates

    What is PATCH? The HTTP method PUT means resource creation or replacement at some given URL. Think files, for example. If you upload a file to S3 at some URL, you want either to create the file at that URL or replace an existing file if there’s one. That is PUT. Now let’s say a web application has an Invoice model with a paid flag that indicates whether the invoice has been paid. How do you set th

    Edge Rails: PATCH is the new primary HTTP method for updates
  • IE9 DELETES stuff | techno weenie

    So, Kyle and I discovered some interesting IE9 behavior. Redirect responses from DELETE requests are followed with another DELETE. How is this surprising? Using more of the HTTP methods lets us keep the URLs cleaner. Web browsers don't understand PUT/PATCH/DELETE in forms, so a workaround was needed. Rails looks at a _method GET parameter on POST requests to determine what HTTP verb it should be r