Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?
この記事はanimateLAB Advent Calendar2015 7日目の記事です。 はじめまして。アニメイトラボに11月からWeb/アプリエンジニアとしてジョインしましたかんがー(@KangalMi)と申します。 新卒で入社した会社から非公開なWebAPIとiOS/Androidアプリの開発を行ってきました。 現在はアニマートのWeb側をメインに担当をしています。 今回は、僕がWebAPIを開発・運用する中で失敗したことをお伝えします。 エラーコードの上手な表現方法 自分が開発したものではエラーの表現を下のような形で常に返却していました。 "meta": { "status": 500, "message": "ユーザーの作成に失敗しました。" } 上記はmeta以下にエラー関連の情報をエンベロープで包み、statusはHTTPステータスコードに準拠したコードを、messageには
WebAPIの動作確認する際、GETはまだしもPUTやPOST、DELETEはどうやって確認するのが楽なんかなぁと。 仕方ないので簡単なフォームを作成して動作確認していたのですが、「.NET開発テクノロジ入門 2014年版 VisualStudio2013対応版 (MSDNプログラミングシリーズ)」にいいツールがさりげなく紹介されていました。 Chrome ウェブストア - Advanced REST client Chrome拡張ですが、自分はChromeをメインで使用しているので問題なし。 こんな風にPOSTするデータを指定したり 結果を見やすい形で表示してくれりします。 実行するパラメータは画面右上の「Save」からローカルやGoogleDriveに保存ができます。*1 *1:ちなみに、私の環境ではGoogleDriveに保存するといつまでも応答がなく、保存できないという現象が発生し
全国100万人のモノリシック巨大アプリケーションに苦しむみなさんこんにちは。 世の中猫も杓子もマイクロサービスだ!!とかAPIだ!!とか言っていますが、実際にマイクロサービス環境にしようとすると、どのようにしてAPIのサービスを取りまとめるかが課題になります。 一般的には以下のようなやり方になります。 複数のサービスに分散しているAPIを統合するゲートウェイを用意するそのゲートウェイでは以下のようなことをおこなうクライアントからのアクセスのシングルエンドポイントの役目を果たすAPIの実体へのルーティング認証アクセス記録の収集スロットリング(過度なアクセスの抑止)実体がダウンしている場合のデグレーションこのようなAPIゲートウェイの機能は既にAWSではAmazon API Gatewayとして提供されていますが、オープンソースでもいくつかのプロダクトがあります。今回はそのうち一番開発が活発そ
WebAPIの仕様を記述する方法はいくつかあると思う。 普通に日本語で記述する JSON Hyper-Schema、WADL、RAML、Swaggerなどを使う 仕様書の代わりにプログラムを書く HTTPメッセージそのものを記述しておく でも、文法にばらつきがあったり、読みにくかったり、ツールのセットアップが面倒だったり、どれもイマイチな所があって、手軽な方法が欲しいと思っていた。 何気なくcurlコマンドのオプションを調べていたら、「もうこれでAPIドキュメント扱いにしちゃえばいいんじゃね?」と思えてきたのでメモしておく。 curlコマンドのおさらい curlコマンドはlibcurlの付属コマンドで、最近のUnix系OSなら大抵最初から入っていると思う。コマンドの詳細はmanを読んでいただければ。 cURL - How To Use (マニュアルページ日本語訳) curlコマンドのオプシ
よく訓練されたアップル信者、都元です。ThoughtWorks社のTechnology Radarをご存知でしょうか。 Technology Radar ThoughtWorks社はグローバルに展開するソフトウェア開発やコンサルティングを行っている会社です。オブジェクト指向やアジャイル開発に数多くの貢献をしている、マーティン・ファウラー氏が所属していることでも有名です。 この会社では年に1〜2回、最近の技術トレンドとなるキーワードをカテゴリ毎にいくつかピックアップし、評価した情報を発信しています。 Technology Radar(以下TR)では各キーワードを「blip」、カテゴリを「quadrant」、評価した結果の位置づけを「ring」と呼んでいます。 quadrants(カテゴリ) quadrantsは図における上下左右の4象限で表されています。 Languages & Framew
前回はNancyFxとTopShelfを使ったSelfHostなAPIサーバーについて紹介しました。 https://tech.guitarrapc.com/entry/2015/05/19/025657 しかしプロダクション環境に投入する前にNancyを辞めて、LightNodeに完全移行しました。 そこで今回は、なぜLightNodeにしたのかについて書きたいと思います。 なぜLightNode にしたのか SelfHost で受ける制限 リポジトリ LightNode の導入と移行 NuGet エラーの嵐 Configuration への LightNode 組み込み Api の作成 Api を Swaggerでテストする PowerShell での Apiアクセス LightNodeでのTips HTML でレンダリングされた Viewを返したい。 実装したApi の一覧を返したい
Golangで開発する上でライブラリの依存関係解決どうするとか、Object Relational Mapping(ORM)どうするとか、hot deployしながら開発するのどうするとかあると思うんですがその辺りを軽く書きながらAPI作っていきたいと思います。 Docker使って開発するあたりの解説は以前のブログを参照されたい。 takasing104.hateblo.jp できること Golangで依存ライブラリの管理(と現場言っていいものかは微妙) ORMを使ったDBアクセス Mac上でソースコードを変更した際、Dockerコンテナに修正が反映されてフレームワークがリロードされる Webフレームワークを利用したAPI開発 ツールと環境 Mac OSX 10.9.5 Mavericks Vagrant 1.7.2 Fresh (c4a501e4002c78dfd6bd519001a58
背景 APIドキュメントを書くのが楽になるツールまとめ - Qiita iodocsで便利なREST APIドキュメントを作成する - Qiita これまでずっとREST APIドキュメントをwiki上で管理していて、重たいページ上で特殊記法使ったり、スタイルの調整に時間を取られるのが辛かった。そこで良さげなドキュメントツールを色々調べてたんだけど、最終的にapiary.ioが一番良さそうという結論になってきた。 このサービスの主な特徴。 markdown記法でAPIドキュメントを記述できる ドキュメントの生成と同時にAPIのモックサーバを用意してくれる サインアップから5分くらいあればドキュメント公開できる。ドキュメントのホスト先を気にしなくてもいい。 特にドキュメントと一緒にモックを作ってくれるのは他にはないポイントでかなり便利。 使ってみる サインアップはGithubアカウントで h
さいきんREST APIのドキュメントを書いていて、wiki使うのだるいし他に良い方法ないかな〜と調べてた時に見つけたツール群をまとめてみます。 追記: こちらも便利そうなので参考にどうぞ。 REST APIドキュメント作成ツールはapiary.ioが決定版かもしれない - Qiita swagger Swagger: A simple, open standard for describing REST APIs with JSON | Reverb for Developers デモ: Swagger UI ソースコード中にAPIの概要を書いておくと、それを元にドキュメントを自動生成してくれる。wikiやmarkdownで書くのと決定的な違いは、↓のようにドキュメント上のformからAPIコールを試すことができる点。 様々な言語のWAFに対応したライブラリも開発されてる。 Home ·
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? ここ最近、 [翻訳] Elixir - 次に来る大物Web言語 - Qiita とか 超高速なJSON APIをElixirフレームワークのPhoenixでビルドしてテストしよう | POSTD を読んで気になっていたので、勉強していた。 前提: 自分はシングルページアプリケーションに特化したフロントエンドエンジニアであり、サーバサイドのプロダクション運用にはそこまで強くない。あとこれはここ2日の勉強した日記でもあり誤解や勘違いも多々あると思う。 リアルタイムウェブアプリケーションのためのサーバー Railsの次の時代、リアルタイムウェ
Single-page Application(SPA)によりフロント開発にかかる手間が膨大になっています。SPAの開発をするときに通信部分(JSONやJSONPなど)をどうすればいいのかが問題になります。解答としてはスタブAPIサーバを作成し対応します。 画面開発するためにアプリケーションサーバを構築するのは時間の無駄ですのでgruntタスクにモックサーバを構築し簡単実装を行いましょう。 「本物の」APIサーバを使う場合は向きを変えることで簡単に結合テストできますし、CIを使うときはもちろんモックサーバでのテストになりますのでモックAPIサーバは活用するのが良いと考えます。 モックAPIサーバ gruntでモック用APIサーバを立ち上げるためのプラグインとして有名なものとして2つ存在します。 grunt-easymock grunt-stubby easymockはnode-easymo
This browser is no longer supported. Upgrade to Microsoft Edge to take advantage of the latest features, security updates, and technical support. November 2010 Volume 25 Number 11 “Hello World!” - A Coder’s Guide to Writing API Documentation By Peter Gruenbaum | November 2010 Ever been in a situation where your manager asks you to write documentation for the APIs that you developed? Let’s face it,
Swagger places API specifications such as OpenAPI, AsyncAPI, and JSON Schema at the core of its architecture, which are crucial for guiding teams through the entire lifecycle of API design and documentation. This strategic focus ensures that our suite, including open source tools and API Hub, delivers unparalleled efficiency and a seamless user experience. Explore the API Specifications Discover t
Web API Advent Calendar 2014、初日はSwaggerを紹介します。 SwaggerはReverbによって開発された、RestfulなAPIを記述する標準仕様です。APIを機械可読な形で記述することは、ドキュメント生成やツール開発、さまざまな形での自動化に非常に重要です。好き嫌いはともかく、SOAPにはWSDLという統一標準がありましたが、RESTには本質的にそういった標準がないため、類似するさまざまな仕様が開発されてきました。Swaggerはその中でも最も有望なものの一つだと思います。 1. 特徴 記述はJSONでシンプル。ミニマム定義の例: { "swagger": "2.0", "info": { "version": "1.0.0", "title": "petstore" }, "paths": { "/users": { "get": { "respon
Stripeの決済サービスの成長は、APIが使いやすいというエンジニアの間での評判がかなり寄与したと記憶しています。 同社のAPIは現在、 エンドポイント: 106 バージョン: 65 APIクライアント: 6 ユーザ企業を煩わせることなく後方互換性をしっかり担保したいという方針を守るための工夫を、Amber Fengが紹介してくれています。 1) ユーザが利用するバージョン情報の把握 ユーザ企業が最初にAPIコールをしたときのバージョン情報をStripe側で保管している。それ以降、ユーザ企業はバージョンのことを意識することなく、最初のバージョンのAPIを利用し続けることができるようにしている。ユーザ企業側でバージョンの変更をしたい場合は、ダッシュボードでの設定や、リクエストヘッダーに情報を付加することで可能。 2) バージョンと機能の整合性 YAMLファイルでバージョンとその振舞いの情報
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く