レガシーなアプリにWeb...
-
Upload
isamu-suzuki -
Category
Software
-
view
1.073 -
download
3
Transcript of レガシーなアプリにWeb...
レガシーなシステムに WebAPIを実装して なみだ目になったので ちょっといろいろ教えてください2015.9.3 Enterprise APIs Hack Night #1 Isamu Suzuki Rakus Co., Ltd.
鈴木 勇
• 株式会社ラクス
• 請求書発行サービスを開発してます
• 仕事ではJava+JavaScript少し
• プライベートはJavaScriptに全力投資中
• 最近Pythonに浮気開始
弊社サービスに WebAPIを実装した話
使っているもの
• Seasar2 + 自社Framework
• Apache 2.2 + Tomcat 7.0
• PostgreSQL 9.1
• CentOS 6.5
こんなことやりました
• Seasar2を拡張
→PUT, DELETEに対応
→RequestボディのJSONを クエリパラメタ同様に扱えるように
• HTML(JSP)ではなくJSON返すように実装
→ファイルDLとかでmime-typeを指定する要領
こんなことやりました
• ビジネスロジックは既存をほぼ完全に共有
→業務要件の2重管理は死亡フラグ
• Viewは新規作成
• ViewとLogicのI/F部分も新規作成
• 主要機能のみ対応(スモールスタート的に)
参考文献
apigeeさん マジ神
なみだ目になったことなど
こうすればいいのに
このツール良いよ
情熱的に考えてこうするだろJK
教えていただきたく(必死)
ハッシュタグはこちら #entapihack
その1
BtoBならJSONだけじゃなく XMLも対応したほうが いいんじゃない? (社内の声)
#entapihack
現実 ↓
#entapihack
WebAPI呼ぶ側は レスポンスを処理するから これから実装するはず
#entapihack
XML扱えて JSON扱えないはずがない
#entapihack
お客さんから要望来るまで 保留になりました
#entapihack
その2
リソース設計慣れないと イケてない設計しちゃう
既存画面の設計に リソース設計が引きずられた
#entapihack
各リソースの状態を 一覧する画面を
API化しようとした
#entapihack
リソースの状態を 取得するAPI
#entapihack
こんな設計にした GET /resources/999/state
※999はリソースID
#entapihack
素直に GET /resources/999
で良かったと反省
進捗以外の状態も まとめて返せばいいだけだった
#entapihack
その3
ドキュメントつらたん
APIには充実した ドキュメントが必要
みなさんどうやってますか?
#entapihack
①apigee API Management
#entapihack
②SwaggerとかのOSSな マニュアルフレームワーク
#entapihack
これもapigeeさんだったり
③API仕様のページを公開
#entapihack
NTT Com Developer Portalみたいな
_人人人人人人人人人_ > ④Word / Excel < ‾Y^Y^Y^Y^Y^Y^Y‾
#entapihack
みなさんなら どうや(ることにな)りそう
ですか?
#entapihack
頑張ってみたこと
HATEOAS
• WEBページのように次に参照するリソースのURIをレスポンスに含んであげること
• 初期設計が甘かったせいでGET /path/to/resources が実装されていないリソースがある
最後に
株式会社ラクスは エンジニアを募集しています
「鈴木の発表を見た」
とお問い合わせください
会社WEBページより 申し込みどうぞ