タグ

ブックマーク / r7kamura.hatenablog.com (6)

  • REST APIドキュメント生成パターン - ✘╹◡╹✘

    REST API用のドキュメントを生成するときにどうやってるかについて雑記を残しとく。 概要 実装とドキュメントの乖離を避けるためには、同じ意味情報を二箇所以上に定義することを避ける必要がある。そのための方法として、実装それ自身か、もしくは実装が参照している何らかのメタデータを元にしてドキュメントを生成したり、テストの実行結果からドキュメントを生成するというパターンがある。 テストから Cookpadでは、autodocというライブラリを利用して、RSpecでテストを実行している途中で得られたメタデータからドキュメントを生成している。これはテストの実行結果からドキュメントを生成するパターン。 これは実現方法としてはかなり特殊な部類。このパターンが最も効果的に働くのは、ドキュメント生成のために余分な開発コストはあまり掛けたくないが、テストは真面目に書いている OR 真面目に書いてほしい、とい

    REST APIドキュメント生成パターン - ✘╹◡╹✘
    tkawa
    tkawa 2014/12/09
  • HerokuのOAuth as Single Sign On読んだ - ✘╹◡╹✘

    Heroku | OAuth as Single Sign Onを読んだ。 つまり Herokuでは色々なリソースの操作が内部のAPIサーバ経由で行われる dashboard.heroku.com 等のサービスがユーザにUIを提供し内部でAPIサーバと通信している APIサーバを利用するにはまずアクセストークンを発行する必要がある ログイン用のUIをid.heroku.comで提供している ログイン時に内部でAPIサーバからアクセストークンを発行してこれをcookieに入れておく 各サービスではcookieに含まれているアクセストークンを利用してAPIサーバと通信する アクセストークンについて リフレッシュトークンは捨てることにしてるので有効期間が切れると使えなくなる とはいえ有効期間は30日間に設定されているので30日の間はログインし続けられる あとアクセストークンと一緒に時刻も保存して

    HerokuのOAuth as Single Sign On読んだ - ✘╹◡╹✘
    tkawa
    tkawa 2014/06/21
  • 全てがJSONになる - ✘╹◡╹✘

    TL;DR JSON Schemaを使ってこういうことが実現可能になった。 ダミーAPIサーバの提供 ドキュメントの自動生成 APIクライアントの動的定義 APIサーバのバリデータの動的定義 APIサーバのレスポンスの自動テスト JSON Schemaとは JSON SchemaというのはあるJSONのデータ構造を記述するための方法および書式の仕様で、 JSON SchemaもJSONで記述される。 これを利用すれば、リソースベースの(=RESTfulライクな)APIの仕様が簡便に記述できる。 例えば、我々のAPIレシピとユーザというリソースを扱っていて、 それぞれCRUDのAPIを備えており、レシピはidとtitleとdescriptionという属性を持つ、 という旨をJSON Schemaで表現できる。 なんで最近ちょっと流行ってんの Mobile First、 Service Or

    全てがJSONになる - ✘╹◡╹✘
    tkawa
    tkawa 2014/06/10
    こうやって実装できるのがすごい
  • RailsのView開発用にViewSourceMap.gemつくった - ✘╹◡╹✘

    @todesking氏のRails、レンダリングされたHTMLのどこがどのpartialから来たのかをコメントとして埋めるが良かったので、完全にパクって、改良して相対パス名表示するようにして、config/initializers/以下に置いたら開発環境でのみ働くようにしてみた。ここのテキストちょっと弄りたいけどどのファイルに書いてあるの...みたいなケース多いので、ChromeのInspectorとかで見たらHTMLコメントでファイル名分かって便利。render layout: "wrapper" do ... という風にrenderを呼んだときに上手くパス名を取得する方法が分からないので、どなたかよろしくお願いします。 @miyagawa gemified :) http://t.co/A3LSJFC1— r7kamura (@r7kamura) December 4, 2012 ht

    tkawa
    tkawa 2012/12/05
  • DRY原則とテストの可読性 - ✘╹◡╹✘

    DRY原則に従おうとするほど、テストコードがどんどん読みづらくなる。 The RSpec Bookに答えがあるかと思って読んでみたものの、「あるある」と一言述べているだけだった。辛い。 テストコードが読みづらくなる例を示すために、1つRubyのライブラリをつくった。 値とパターンを与えてValidationを行う機能を提供するライブラリ。 実装60行、テスト120行なので、詳しく見たければすぐ読めると思う。 最近不意ながらキラキラネームの命名力が上がってきたと思う。 avalon - A validator implementation for Ruby https://github.com/r7kamura/avalon 冗長だが読みやすい例 letもsubjectもローカル変数も何も用いずに率直に書いたテストコード例がこちら。 冗長だが読みやすく、テストコードを見ればライブラリの使い

    DRY原則とテストの可読性 - ✘╹◡╹✘
    tkawa
    tkawa 2012/09/02
    テストコードでは、DRYより可読性を重視すべきではという考え
  • 開発中に求めること - ✘╹◡╹✘

    7月1日にCookpadにインターンとして参加してから1週間が経過した。「インターンに参加する」では齟齬があり、「インターンとして参加する」が最もしっくりくる雰囲気。ここでは時間が過ぎていくのが速すぎて恐ろしい。月と太陽まで高速なサイクルを回さなくてもいいのに。 今まではてなで働いた経験しかなかったけど、今回クックパッドで働いた経験が1週間貯まった。これまでは「はてなだからこうしているのかもしれない」という捉え方しか出来なかったけど、この時点で「ああどこも共通してこうなっているのかも」という視点に立って考えることが出来る状態になった。その視点から考えてみて、幾つかの共通する意見が明確になってきた。 学習コスト Cookpadの開発は、途中からJoinしやすい環境が整っていた。Railsを採用しているところは特に、内製フレームワークに対する理解の為の学習コストが発生することなく、開発に取り掛

    開発中に求めること - ✘╹◡╹✘
    tkawa
    tkawa 2011/07/09
    「仮に時間を取ってもらって聞いた場合に、以下のようなことを秤にかけると結局聞かない方がいい場合もあって、結果聞けないこともある」あるある
  • 1