レガシーなアプリにweb...

Post on 12-Apr-2017

1.073 Views

Category:

Software

3 Downloads

Preview:

Click to see full reader

TRANSCRIPT

レガシーなシステムに 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ページより 申し込みどうぞ

top related