タグ

RESTとdesignに関するt-wadaのブックマーク (25)

  • https://github.com/Microsoft/api-guidelines/blob/master/Guidelines.md

    https://github.com/Microsoft/api-guidelines/blob/master/Guidelines.md
    t-wada
    t-wada 2016/07/20
    Microsoft による RESTful Web API 設計のガイドライン。実践的なところまで踏み込んで網羅的に記されていて、とても良い。
  • WebAPIリクエスト仕様書としてcurlコマンドのご提案 - Qiita

    WebAPIの仕様を記述する方法はいくつかあると思う。 普通に日語で記述する JSON Hyper-Schema、WADL、RAML、Swaggerなどを使う 仕様書の代わりにプログラムを書く HTTPメッセージそのものを記述しておく でも、文法にばらつきがあったり、読みにくかったり、ツールのセットアップが面倒だったり、どれもイマイチな所があって、手軽な方法が欲しいと思っていた。 何気なくcurlコマンドのオプションを調べていたら、「もうこれでAPIドキュメント扱いにしちゃえばいいんじゃね?」と思えてきたのでメモしておく。 curlコマンドのおさらい curlコマンドはlibcurlの付属コマンドで、最近のUnix系OSなら大抵最初から入っていると思う。コマンドの詳細はmanを読んでいただければ。 cURL - How To Use (マニュアルページ日語訳) curlコマンドのオプシ

    WebAPIリクエスト仕様書としてcurlコマンドのご提案 - Qiita
    t-wada
    t-wada 2015/05/26
    面白い。すぐ試せる、実行可能なドキュメントという側面はとても良いと思う
  • WebAPIでエラーをどう表現すべき?15のサービスを調査してみた - Qiita

    2017-01-05 追記 2016年3月にエラーの標準形式RFC7807「Problem Details for HTTP APIs」が提案され、今日現在proposed standard(標準化への提唱)となっています。こちらも是非ご覧ください。 RFC 7807 - Problem Details for HTTP APIs HTTP APIの詳細なエラー情報をレスポンスに持たせるための仕様 最近はREST APIを提供しているサービスが増えてきていますね!また公開されるAPIだけでなく、Microservicesなアーキテクチャを採用して、バックエンドがWeb APIで通信するケースも増えてきているように思います。 APIを使うときはあまり気にしたこともなかったですが、いざAPIを設計してみるとどんなインターフェイスがいいのか、どんな形式がいいのかといった疑問が次々と出てきます。

    WebAPIでエラーをどう表現すべき?15のサービスを調査してみた - Qiita
    t-wada
    t-wada 2015/05/26
    Web API のエラー表現 (エラー時のレスポンスボディ) を各社サービスがどのように設計しているかのまとめ。参考になる。実際の HTTP ステータスやヘッダがどうなっているのかも気になる。
  • リソースの一部更新におけるURL設計 - Qiita

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

    リソースの一部更新におけるURL設計 - Qiita
    t-wada
    t-wada 2015/02/13
    流しの RESTful おじさん業の現場風景です
  • Web API: The Good Parts

    Web APIの設計、開発、運用についての解説書。APIは設計次第で使いづらいものになってしまうだけでなく公開後の保守運用も難しくなってしまいます。そのためAPIを美しく設計することがとても重要です。書では「設計の美しいAPIは、使いやすい、変更しやすい、頑強である、恥ずかしくない」という考えのもと、APIをどのように設計し運用すればより効果的なのか、ありがちな罠や落とし穴を避けるにはどういう点に気をつけなければいけないのかを明らかにします。ターゲットは、URIにアクセスするとXMLやJSONなどのデータが返ってくるシンプルなタイプ――XML over HTTP方式やJSON over HTTP方式――のAPIです。読者は、Web API設計の考え方と手法を知ることができます。 はじめに 1章 Web APIとは何か 1.1 Web APIの重要性 1.1.1 APIでの利用を前提とした

    Web API: The Good Parts
    t-wada
    t-wada 2014/11/06
    目次を見る限りとても良さそう “設計の美しいAPIは、使いやすい、変更しやすい、頑強である、恥ずかしくない” 「恥ずかしくない」っておもしろいな
  • HTMLでWeb APIをつくる - Qiita

    シングルページアプリケーションやモバイルアプリなどの普及により、サーバサイドではJSONを出力するWeb APIの必要性が高くなってきています。みなさんはどのようにWeb APIを作っているでしょうか。 JSONはビュー RailsでJSON APIを定義する時、素のままでやろうとすると コントーラでto_jsonを呼んだり、モデルにas_jsonを定義したりすることになるかと思います。 モデルに書くとAPIによって出力内容を変えたい場合にとても苦労します。 API数が増えれば増えるほどモデルが複雑になっていきます。 APIレスポンスとしてのJSONはコントローラやモデルに書くべきでしょうか? ビューに書いた方が自然ではないでしょうか? これはRailsでの話ですが、Railsに限らず、フレームワークを使ってWeb APIを作るときに一般的にあてはまることだと思います。 変化に強い、再利用

    HTMLでWeb APIをつくる - Qiita
    t-wada
    t-wada 2014/08/05
    さすがの @tkawa さん。 RESTful な設計においてリンクを大事にして「Web アプリと Web API を分けない」考え方を分かりやすく説明している。
  • SRU: Search/Retrieval via URL -- SRU, CQL and ZeeRex (Standards, Library of Congress)

    SRU/CQL SRU- Search/Retrieve via URL - is a standard XML-based protocol for search queries, utilizing CQL - Contextual Query Language - a standard syntax for representing queries. Specifications: SRU 2.0        SRU 1.2        SRU 1.1     CQL Version 1.1 was released in 2004 and 1.2 in 2007. SRU 2.0 is an OASIS Standard. Companion Specs: Scan    Explain   SRW    XML Files Also Conformance (SRU Base

    t-wada
    t-wada 2014/07/02
    検索系 API の仕様 "SRU- Search/Retrieve via URL" と "CQL - Contextual Query Language" の仕様を記したサイト
  • Home - OpenSearch

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    Home - OpenSearch
    t-wada
    t-wada 2014/07/02
    OpenSearch 規格群の本丸。各仕様へのリンクもまとまっている。検索系の Web API を設計する際の参考になる。
  • The Hypertext Application Language

    HAL - Hypertext Application Language A lean hypermedia type Author: Mike Kelly <[email protected]> Created: 2011-06-13 Updated: 2013-09-18 (Updated) Summary HAL is a simple format that gives a consistent and easy way to hyperlink between resources in your API. Adopting HAL will make your API explorable, and its documentation easily discoverable from within the API itself. In short, it will make yo

    t-wada
    t-wada 2014/07/02
    HAL の specification をブクマし忘れてた “HAL is a simple format that gives a consistent and easy way to hyperlink between resources in your API.”
  • - The RESTful cookbook

    Welcome to the REST CookBook REST is hot! And REST is finally rediscovered by API programmers all over the world. But REST isn't always as easy as it seems on first look. Dealing with HATEOAS, Code on demand and uniform interfaces can be really tricky and many people will fall back to not-so-restful approaches when things are starting to become more difficult. But it doesn't need to be. Once you g

    t-wada
    t-wada 2014/07/02
    RESTful な Web API を作る際の FAQ を(少量だけど)まとめているサイト
  • HerokuのAPIデザイン

    Herokuが自ら実践しているAPIデザインガイドをGithubに公開した. “HTTP API Design Guide” このガイドは些細なデザイン上の議論を避けて,ビジネスロジックに集中すること目的としている.Heroku特有なものではなく,一般にも十分適用できる知見となっている. 最近は,モバイル向けにAPIをつくることも多いため,勉強もかねて抄訳した.なお内容は,HTTP+JSONのAPIについて基的な知識があることが前提となっている. 適切なステータスコードを返す それぞれのレスポンスは適切なHTTPステータスコード返すこと.例えば,“成功"を示すステータスコードは以下に従う. 200: GETやDELETE,PATCHリクエストが成功し,同時に処理が完了した場合 201: POSTリクエストが成功し,同時に処理が完了した場合 202: POSTやDELETE,PATCHリク

    t-wada
    t-wada 2014/06/05
    Heroku が出した Web API 設計ガイド “HTTP API Design Guide” の抄訳
  • GitHub - interagent/http-api-design: HTTP API design guide extracted from work on the Heroku Platform API

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    GitHub - interagent/http-api-design: HTTP API design guide extracted from work on the Heroku Platform API
    t-wada
    t-wada 2014/05/21
    HTTP+JSON API 設計のガイドライン。 Heroku Platform API 設計時の知見から抽出されている。
  • RESTful Meetup vol.3 を開催しました #RWABookja - ぶろぐ。@はてな

    4/12(土)の夜に『RESTful Meetup vol.3』を開催しました。 RESTful Meetup vol.3 - Sendagaya.rb | Doorkeeper 昨年の記事の通り『RESTful Web APIs』の読書会を月2回ペースで開催してきましたが、その後、著者のMike Amundsen(@mamund)さんから、ワークショップのために東京へ行くという知らせがあったので、これはイベントをやるしかない!ということで企画しました。 vol.3ということで、実は過去2回開催しています。そのときは『RailsにおけるRESTfulなURL設計勉強会』というタイトルで、かなりターゲットを絞っていたのですが、今回は「REST」「Web API」というかなり広いテーマにしました。このことでRuby/Railsに限らず多様な言語の人に集まってもらえたのがとてもよかったです。 ビ

    RESTful Meetup vol.3 を開催しました #RWABookja - ぶろぐ。@はてな
    t-wada
    t-wada 2014/04/17
    とても濃いイベントでした。登壇させて頂いて光栄でした!
  • Reviewing RESTful Web Apps

    This document summarizes Takuto Wada's presentation on reviewing RESTful web apps. It discusses best practices for designing RESTful resources and representations, including using nouns instead of verbs in URLs, making URLs reflect the meaning of resources, and ensuring resources are connected through hypermedia links and forms. It also covers appropriate use of HTTP methods, status codes, and con

    Reviewing RESTful Web Apps
    t-wada
    t-wada 2014/04/13
    #RWABookja の講演資料(英語)をアップロードしました
  • Ruby RoguesメンバとiOSエンジニアのAPI議論 - ワザノバ | wazanova

    http://rubyrogues.com/147-rr-apis-that-dont-suck-with-michele-titolo/ 1 comment | 0 points | by WazanovaNews ■ comment by Jshiike | 約4時間前 iOSエンジニアのMichele Titoloは、Objective-Cのディペンデンシーを管理するCocoaPodsのプロジェクトで知られてますが、モバイルエンジニアの立場からAPIを利用して開発するポイントについても、自らのブログでまとめています。 1) Follow Conventions はじめてのことにトライするときは先駆者の知恵に従うほうが、クオリティの高いものをつくれるので、conventionに従うのがよい。そのほうがデバッグもしやすい。自分でAPIのルールを定義する必要が生じた場合は、一貫性を維持し

    t-wada
    t-wada 2014/03/20
    API 設計についての議論。特に Michele Titolo が挙げている四つのポイントは素晴らしい。
  • Designing a REST API: Unix time vs ISO-8601

    Designing a REST API: Unix time vs ISO-8601 Published on: February 22, 2013 In what format should a REST API return and accept timestamps? The two most popular ways are Unix time (or a slight variation thereof) or ISO-8601. Both have their strengths and weaknesses and both are equally popular as we shall see. A sample of 20 APIs yielded nearly a 50/50 split. Therefore, no matter if this holds any

    t-wada
    t-wada 2014/02/05
    RESTful Web API から返す JSON や XML の中の日付をどう表現するか問題。 ISO-8601 vs. Unix time. 各々使っているサービスを紹介。
  • Web API Design(その1) - winplusの日記

    これApigee | Google Cloud Blogを勝手訳してみる。InfoQの紹介記事Web API Design - 開発者が愛するインターフェイスを作るで十分かも知れませんが、まあ。 導入 これを読んでいるということは、開発者に愛されるようなWeb API をデザインすることを気にかけているのでしょう。そして、実証済のデザインの原則とベストプラクティスとをWeb APIに適用することに関心があるのでしょう。 私たちがデザインを考えるのためのソースのひとつに、RESTがあります。なぜなら、RESTは厳格な標準ではなくアキーテクチュア・スタイルであり、かなりの柔軟さを認めているからです。構造が柔軟かつ自由であるからこそ、デザインのベスト・プラクティスを貪欲に追い求めるのです。 このe-bookはデザインのプラクティスを集めたものです。収録したプラクティスは、私たちがいくつかの世界中

    Web API Design(その1) - winplusの日記
    t-wada
    t-wada 2012/07/31
    一連の Web API Design の翻訳シリーズ (良い仕事!) の最初のエントリ
  • Rails-resource-routing-design-bootstrap(ja)

    Sendagaya.rb#12での講演資料に口頭のまとめを追記したものです。

    Rails-resource-routing-design-bootstrap(ja)
    t-wada
    t-wada 2012/07/24
    リソース設計の 1 周めで戸惑うところをきちんと言語化するのはとても大事!
  • リソースモデリングパターンの提案 #sendagayarb

    RailsにおけるRESTfulなURL設計勉強会 http://d.hatena.ne.jp/tkawa/20120726/p2

    リソースモデリングパターンの提案 #sendagayarb
    t-wada
    t-wada 2012/07/24
    RESTful な Web アプリケーション設計を行う際のリソースモデリングをパターン化する試み。すばらしい。
  • RESTful Web アプリの設計レビューの話

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

    RESTful Web アプリの設計レビューの話
    t-wada
    t-wada 2012/07/24
    昨日の #sendagayarb での講演資料をアップロードしました