This domain may be for sale!
これは Enchant の開発者である Vinay Sahni さんが書いた記事「Best Practices for Designing a Pragmatic RESTful API」1を、ご本人の許可を得て翻訳したものです。 RESTful な WebAPI を設計しようとすると、細かなところで長考したり議論したりすると思います。また、他の API に倣ってやってはみたものの、本当にそれでいいのか、どうしてそうしているのか分からない、何てことも少なくはないと思います。 この記事では、そのようなハマリどころについて Vinay さんなりの答えを提示し、簡潔かつ明快に解説してくれています。 今後 WebAPI を設計される方は、是非参考にしてみてください。 なお、誤訳がありましたら編集リクエストを頂けると幸いです。 まえがき アプリケーションの開発が進むにつれて、その WebAPI を公
こんにちは、2015年も終わりですね。昨年よりエンジニアのお仕事をはじめております自称エンジニアの@mochizukikotaroです。 お祭り記事ですので、皆様の箸休めの一助にでもなればと思いながら、全力で書きたいと思います。 まず感謝 当記事は、「素人がAWSに手を出し、のんきに過ごして気づいたら、自分のミスで不正利用され$6,000ほどの請求が来ていて」一週間ほど食べ物も喉を通らず、AWS様に泣きついた結果、「なんとか情け容赦を頂いた」という内容です。 本文中には多少ふざけた言葉選びが散見されるかもしれませんが、私は全力で AWSさんに感謝 をしております。 この先、 僕と同じような過ちを犯す可哀想な素人エンジニアを、この世から一人でも無くしたい。 と切に願っております。 最初にお断りしておきますが、 当記事から得られる、プログラミングインテリジェンスは1gくらいです。 一定レベル以
UIPalette 「UIPALETTE」は、配色を考えるときに使えるオンラインツールです。 サイトの左側にあるメニューのうちの「BrandColors」をクリックすれば、海外の企業のイメージカラーがわかり、「FlatColors」や「MaterialDesignColors」をクリックすれば、フラットデザインやマテリアルデザインに必要な配色がわかります。 「Hailpixel」を使えば、感覚的に色を決めることができるので、その時の自分に必要なカラーコードを直感的に見つけることができます。 SmartHR(スマートエイチアール) 「SmartHR」は、社会保険や雇用保険の手続きを自動化するクラウド型ソフトウェアサービスです。 従業員情報を入力するだけで、必要書類を自動で作成し、総務省が提供する電子政府「e-Gov」の外部連携APIと連携してWeb上から役所への申請できます。β版はすでに15
{ "response": { "id": 3342124, "message": "Hi!", "user": { "id": 3456, "name": "Taro Yamada", "image_url": "/images/taro.png" } } } など、どの構造がいいでしょうか? もっと違う構造も考えられます。 JSONはシンプルですが、構造に制約がなさすぎます。適切な設計を行うには適切な制約が必要です。 そこで、plain JSONに少し制約を加えたJSONベースのフォーマットを使うことをおすすめします。 もしあなたが、JSONレスポンスをどのようなフォーマットにするかをチームで議論したことがあるなら、JSON APIは『自転車置き場の議論』に対抗する武器となる。 共有された規約に従うことで、生産性が向上し、汎用的なツールを利用でき、アプリケーションという重要なものに集中
はじめに 顔写真から年齢、性別を推定するサイトが流行っています。 www.itmedia.co.jp 楽しそうです。さっそく自分の顔写真を使ったら、33歳と判定されました。 プロ野球選手の顔写真で遊びたい プロ野球選手の顔写真を使ってみたくなりました。 誰の顔が若々しいのか、誰が老けているのか。気になります。 井端は老け顔です。日ハムの谷口は女の子と判定されるかもしれません。 チェックしてみましょう。 プロ野球選手の顔写真 年齢推定と性別、笑顔スコア 日本プロ野球連盟の公式サイトに、選手名鑑がありました。 個人年度別成績 【谷口雄也 (北海道日本ハムファイターズ)】 顔写真があるので、これを利用します。 あとはMSのAPIを取得してなんやかんやすれば.. …と思ったのですが、登録できなくて困りました。 悩んでいたところ、素敵なおじさんがこのような記事を投稿してくれました。 d.hatena
去年から公開されてる「JR東日本アプリ」ですが、機能の一つに「山手線トレインネット」というものがあります。 これは山手線の各車両の現在位置、混雑状況、室内温が見えるというもので、 座りやすい車両を探すのに便利だったりします。 山手線トレインネットから取得した車両位置と混雑率 電車の運行情報がここまで時間粒度細かく公開されているのは世界的にも珍しいので、特に目的も無しにデータをクローリングして遊んでみました。 データをクローリングする まずは山手線トレインネットの車両位置・混雑情報をクローリングします。 JR東日本アプリの山手線トレインネット。 今の車両内の混雑や室内温が見える。すごい! 「山手線トレインネット」はブラウザから見えるページが存在しない、iPhone/Androidアプリ専用の画面です。 なので普段の「FirebugでAJAXの通信を見てAPIをリバースエンジニアリング」ほど簡
「Safe Browsing API」では迷惑ソフトウェアに関するデータを開発者に提供し、Google以外のセキュリティサービスや製品にも組み込んでもらえるようにする。 米Googleは3月24日、Web上の不正コンテンツ阻止を目的としたセキュリティ対策サービス「Safe Browsing」について、迷惑ソフトウェアに関する情報をSafe Browsing APIに追加し、開発者が利用できるようにしたと発表した。 Safe Browsingは、ユーザーが不正なプログラムをダウンロードしようとすると警告が表示されるサービス。2月からは、そうした不正プログラムをダウンロードさせるWebサイトを表示する前に警告が出るようになっていた。 同サービスのAPIではこれまでマルウェアやフィッシング詐欺などに関するデータを開発者向けに提供してきたが、これに加えて迷惑ソフトウェアに関するデータも提供し、Go
Evernoteでできること 皆様こんにちは、加藤と申します。本連載では、Evernote が提供している各種APIについて、概要や使い方を説明をしていく予定です。今回は第1回ということで、APIの話に入る前にEvernoteのサービスについて紹介したいと思います。 Evernoteは、テキストや画像、PDFなどのデータをクラウドで管理してくれるサービスです。フリーミアムなので、基本的には無料で使用可能です。有料のプレミアム版では、データのアップロード量や通信の暗号化、多くのファイル形式が扱えるなど、機能の追加がされています。 Evernoteにはさまざまなプラットフォーム用にクライアントソフトウェアがあり、クラウドを通して各クライアントが自動で同期できます。また、クライアントではオフライン作業も可能です(iPhone/Androidなどはプレミアム版のみ対応)。私は現在、自宅と職場の
Webの表現力は、文字の大きさや色を中心に修飾していた時代から美しいグラフィックやアニメーションの活用へと進み、いまでは大きな動画も積極的に取り入れた、豊かな表現力と情報量を備えるWebが数多く見られるようになりました。 最近では広告や解説動画といった例だけでなく、背景いっぱいに動画を使うといった例もあります。モバイルでもゲームやソーシャルメディアなどを中心に積極的に動画を用いた表現が増えています。 GIFやH.264に足りないもの こうした動画表現を実現する技術には複数の選択肢がありますが、モバイルとWebサイトの両方での対応を考えると、GIFアニメーションかH.264のいずれかを選択するのが一般的でしょう。しかしGIFアニメーションは色数が256色と限られ圧縮率も低いため、小さなサイズで数秒程度といった最小限の動画再生にしか向きませんし、音声との同期も困難です。一方、H.264は高精細
クライアント実装 サーバ実装 仕様 Web API にありがちなこと API ドキュメント リクエスト レスポンス ぶっちゃけAPI の追加時く らいしか更新していない なぜかドキュメントにない属性が 含まれている 手が滑ってドキュメントと若干違う形式の 属性を含めちゃったけどなんとなく通った クライアント実装 サーバ実装 仕様 いまは API Blueprint で頑張ってる (http://apiblueprint.org/) API ドキュメント リクエスト レスポンス Markdown の スーパーセット (ツラい) API Blueprint (YAML 表現) generate mock validate あんまり嬉しく ない なんか別に JSON Schema 書かない といけない クライアント実装 サーバ実装 仕様 今日話したいこと JSON Schema API ドキ
1. ServiceWorker が拓く Mobile Web の新しいかたち HTML5とか勉強会 02/25/2015 Kinuko Yasuda (@kinu) kinuko@chromium.org HTML5とか勉強会 02/25/2015 Kinuko Yasuda (@kinu) kinuko@chromium.org ServiceWorker が拓く Mobile Web の新しいかたち 2. 自己紹介: Kinuko Yasuda @kinu / kinuko@chromium.org Chrome エンジニア 5年目くらい ■ ストレージ、ネットワーク、Worker系など裏方っぽい API をよくいじっています ■ File/Blob, FileSystem, Quota, XHR, Web Workers, ServiceWorker などなど ■ 2013年秋頃か
All in One SEO Packは、簡単にWordPressのSEO対策が行えるプラグインです。Titleタグ、meta descriptionタグ、meta keywordタグ、noindexの設定などがページごとに行えるようになります。トップページや投稿ページは勿論のこと、固定ページ、カテゴリページ、著者ページ、404エラーページ、検索結果ページなどを広くSEO対策することが可能です。 All in One SEO Pack WordPress SEO by Yoast WordPress SEO by Yoastは、All in One SEO Packを高機能にしたプラグインです。各ページのタグ設定やnoindex, follow設定の他にも、OGPやTwitter cardの設定や、「category」スラッグ削除、構造化されたパンくずリストの設置など、他のプラグインをいく
robots.txt は法律上以下のようになってます。 無視してクロールしてもいいけど、無視してクロールした結果を公開するのはダメ つまり新 2ch では以下のようなサイトが法律上 NG になります API キーをアプリから解析して新 API 勝手に使ったりクロールしたりして過去ログ公開するようなサイト 上記のような仕組みで旧 2ch っぽいインターフェイスを提供するプロキシサイト 上記のような仕組みで動作する Web アプリケーション型 2ch クライアント OK なのは以下の行為です スクレイピングして動作するデスクトップ、携帯電話向けのクライアントを開発、配布する 無論、これらのクライアントが常軌を逸した動作をして、結果 2ch のサービス継続を妨害するようなことがあれば、 2ch は民事、刑事で適切な対応を取ることができるでしょう。この場合参考になるのは librahack 事件で
Feb 17, 2015 昨年末にはてなの@cockscombさんと@yashiganiさんがつくっていたSwiftでenumとジェネリクスを活用したかっこいいAPIクライアントを書くが 面白かったので、これを参考にしつつSwiftらしい堅牢で使いやすいAPIクライアントを考えてみました。 目標としたのは以下の3つの条件を満たすことです。 レスポンスはモデルオブジェクトとして受け取る (便利) 個々のリクエスト/レスポンスの定義は1箇所で済ます (変更しやすくしたい) リクエストオブジェクトはAPIクライアントから分離させたい 例にはGitHub System Status APIを使用しています。 サンプルコードはGitHubに上がっています。 APIクライアントのインターフェース APIの呼び出し用に用意されたメソッドはcallのみで、callに渡すリクエストによってレスポンスの型が変
「2015/3/3以降、2ch.net専用ブラウザ(以下「専用ブラウザ」)を開発、公開するには、2ch.netの所有者であるRaceQueen社の許諾を得て、2ch.netが提供するAPI(以下「API」)を用いて開発する必要があります」ということで、developer.2ch.netにて、今後の2ch専ブラ(2ちゃんねる専用ブラウザ)開発について、大きな方針転換が行われることが発表されました。 developer.2ch.net http://developer.2ch.net/ まず大きな変更としては2ちゃんねるに書き込まれたレスが保存されているdatの直読みを廃止し、API方式へ移行するということ。この許諾は誰がするのかというと、RaceQueen社。あともうひとつ、JaneStyleの開発元でもある株式会社ジェーンもRaceQueen社からAPIの使用許諾を得ており、しかも「一部の
エンジニアがアプリ担当とAPI担当で分かれているチームで、API担当のエンジニアがアプリ開発経験が無かったりすると、アプリ担当のエンジニアはどんなAPIがクライアントアプリにとって使いやすいのか、上手く伝えるのに苦労する事がありますよね?本記事はそんな場面でAPI担当のエンジニアに読んでもらう事を想定しています。 APIと型 アプリ側はRESTクライアントにRetrofitやRestkit等、既に広く使われているライブラリを使用する事が多いです。それらのライブラリは、オブジェクト・JSON間の変換機能があり、アプリ側ではJSON等シリアライズされるデータ形式を意識せずに、処理系上のオブジェクトをそのまま扱えます。即ちAPI経由でやり取りされるデータは全て型を持つのです。 例えばAPI側のコードで以下の様に定義されたクラスが
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く