Submit Search
SwaggerとAPIのデザイン
3 likes
3,732 views
Kazuhiro Hara
Swaggerではじめる楽々RESTful APIデザイン&ドキュメント管理
Technology
Related topics:
Node.js Development
Read more
1 of 33
Download now
Downloaded 12 times
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
More Related Content
PDF
buddyのユーザ認証周りのデータ構造 - 使われているデータの取り回しについてのお話
Kazuhiro Hara
PDF
React VR ことはじめ
Kazuhiro Hara
PDF
Clojure の各種React系ラッパーライブラリのサーバーサイドレンダリングの現状について
Kazuhiro Hara
PDF
React系(別言語含む)の サーバーサイドレンダリング について考えよう
Kazuhiro Hara
PDF
Swaggerを利用した新規サービス開発
recotech
PDF
[出張!雲勉 in Tokyo] Swagger で簡単APIドキュメント作成
Tomoki Oyamatsu
PDF
ClojureでElectronアプリを作ろう
Kazuhiro Hara
PDF
One Time Binding & Digest Loop
Kon Yuichi
buddyのユーザ認証周りのデータ構造 - 使われているデータの取り回しについてのお話
Kazuhiro Hara
React VR ことはじめ
Kazuhiro Hara
Clojure の各種React系ラッパーライブラリのサーバーサイドレンダリングの現状について
Kazuhiro Hara
React系(別言語含む)の サーバーサイドレンダリング について考えよう
Kazuhiro Hara
Swaggerを利用した新規サービス開発
recotech
[出張!雲勉 in Tokyo] Swagger で簡単APIドキュメント作成
Tomoki Oyamatsu
ClojureでElectronアプリを作ろう
Kazuhiro Hara
One Time Binding & Digest Loop
Kon Yuichi
What's hot
(20)
PDF
Gradleどうでしょう
Takuma Watabiki
PDF
Windows コンテナを AKS に追加する
Yuto Takei
PDF
2020/06/16 tsjp-azure-staticwebapps-vs_codespaces
Issei Hiraoka
PDF
Bicep + VS Code で楽々Azure Deploy
Takekazu Omi
PDF
Swagger 入門
Yoshiaki Yoshida
PPTX
Jjug 20140430 gradle_advanced
Masatoshi Hayashi
PDF
GitHub + Circle CI で幸せになろう
Nobuhiro Ueda
PDF
Riot + generator で始める新しいデータバインディング
Tsutomu Kawamura
PDF
VSCode Conference Japan 2021 kyusque
kyusque
PPTX
【東京Node学園祭2016】Node.js × Babel で AWS Lambda アプリケーションを開発する
Hiroyuki Kusu
PDF
海外で注目されてるJs framework “mithril”の特徴
Shoyo Kyou
PDF
Github codespaces すごく良い。もうこれで 十分なんじゃという話
xiidec
PPTX
Riotjsハンズオン
omi end
PDF
づや会 Vol4 Node.jsとphpのパフォーマンスを比較してみる
zuya
PDF
Rancher使ってみたよ(初心者向け)
Shun Sumiya
PDF
インフラ部門で働くCプログラマの話
雅也 山本
PDF
はじめての CircleCI
Yosuke Mizutani
PPTX
WebAssemblyとBlazor 、WebAssembly System Interfaceでコンテナライズの設計を解説
Takao Tetsuro
PDF
Om Next ~React.jsを超えて
Kazuki Tsutsumi
PDF
AWS SDK for Go in #jawsmeguro
Kenta Suzuki
Gradleどうでしょう
Takuma Watabiki
Windows コンテナを AKS に追加する
Yuto Takei
2020/06/16 tsjp-azure-staticwebapps-vs_codespaces
Issei Hiraoka
Bicep + VS Code で楽々Azure Deploy
Takekazu Omi
Swagger 入門
Yoshiaki Yoshida
Jjug 20140430 gradle_advanced
Masatoshi Hayashi
GitHub + Circle CI で幸せになろう
Nobuhiro Ueda
Riot + generator で始める新しいデータバインディング
Tsutomu Kawamura
VSCode Conference Japan 2021 kyusque
kyusque
【東京Node学園祭2016】Node.js × Babel で AWS Lambda アプリケーションを開発する
Hiroyuki Kusu
海外で注目されてるJs framework “mithril”の特徴
Shoyo Kyou
Github codespaces すごく良い。もうこれで 十分なんじゃという話
xiidec
Riotjsハンズオン
omi end
づや会 Vol4 Node.jsとphpのパフォーマンスを比較してみる
zuya
Rancher使ってみたよ(初心者向け)
Shun Sumiya
インフラ部門で働くCプログラマの話
雅也 山本
はじめての CircleCI
Yosuke Mizutani
WebAssemblyとBlazor 、WebAssembly System Interfaceでコンテナライズの設計を解説
Takao Tetsuro
Om Next ~React.jsを超えて
Kazuki Tsutsumi
AWS SDK for Go in #jawsmeguro
Kenta Suzuki
Ad
Similar to SwaggerとAPIのデザイン
(20)
PPTX
Swagger jjug ccc 2018 spring
kounan13
PDF
こんなに使える!今どきのAPIドキュメンテーションツール
dcubeio
PDF
Swaggerのさわりだけ
Masakazu Muraoka
PPTX
Automatic api document generation 101
LINE Corporation
PDF
Swaggerでのapi開発よもやま話
KEISUKE KONISHI
PDF
Swaggerで始めるモデルファーストなAPI開発
Takuro Sasaki
PDF
Apiドキュメンテーションツールを使いこなす【api blueprint編】
dcubeio
PPTX
Fun tech14-alibaba cloud api gateway-swagger
AnzaiKumiko
PDF
Java クライント実装におけるAPIスタイル頂上決戦! 野良REST vs GraphQL vs OData vs OpenAPI (Swagger)
Kazuya Sugimoto
PDF
Web api開発をするなら ドキュメントは自動生成にしておこう__ph_per_kaigi2021_
Akito Tsukahara
PDF
OpenAPI 3.0でmicroserviceのAPI定義を試みてハマった話
Daichi Koike
PPTX
Create entity from swagger in drupal8
Kyotaro Kon
PPTX
APIドキュメントの話 #sphinxjp
Takeshi Komiya
PDF
多分モダンなWebアプリ開発
tak-nakamura
PDF
カラーミーAPIドキュメントの今後
Joe_noh
PDF
大規模なギョームシステムにHaxeを採用してみた話
terurou
PDF
【2018/09/11】PAYでのReact Nativeにおける APIクライアント実装 について
Natsuki Yamanaka
PDF
Java scriptの進化
maruyama097
PDF
デバイス WebAPI設計の進め方
Device WebAPI Consortium
PPTX
Angular でもっとAPIファースト・もっとモダンデザインなWebアプリケーションを作ろう!
CData Software Japan
Swagger jjug ccc 2018 spring
kounan13
こんなに使える!今どきのAPIドキュメンテーションツール
dcubeio
Swaggerのさわりだけ
Masakazu Muraoka
Automatic api document generation 101
LINE Corporation
Swaggerでのapi開発よもやま話
KEISUKE KONISHI
Swaggerで始めるモデルファーストなAPI開発
Takuro Sasaki
Apiドキュメンテーションツールを使いこなす【api blueprint編】
dcubeio
Fun tech14-alibaba cloud api gateway-swagger
AnzaiKumiko
Java クライント実装におけるAPIスタイル頂上決戦! 野良REST vs GraphQL vs OData vs OpenAPI (Swagger)
Kazuya Sugimoto
Web api開発をするなら ドキュメントは自動生成にしておこう__ph_per_kaigi2021_
Akito Tsukahara
OpenAPI 3.0でmicroserviceのAPI定義を試みてハマった話
Daichi Koike
Create entity from swagger in drupal8
Kyotaro Kon
APIドキュメントの話 #sphinxjp
Takeshi Komiya
多分モダンなWebアプリ開発
tak-nakamura
カラーミーAPIドキュメントの今後
Joe_noh
大規模なギョームシステムにHaxeを採用してみた話
terurou
【2018/09/11】PAYでのReact Nativeにおける APIクライアント実装 について
Natsuki Yamanaka
Java scriptの進化
maruyama097
デバイス WebAPI設計の進め方
Device WebAPI Consortium
Angular でもっとAPIファースト・もっとモダンデザインなWebアプリケーションを作ろう!
CData Software Japan
Ad
More from Kazuhiro Hara
(20)
PDF
MDX with Next.js
Kazuhiro Hara
PDF
MDX and Next.js
Kazuhiro Hara
PDF
About Plone Conference Tokyo 2018 Frontend Day
Kazuhiro Hara
PDF
Gatsby & React Static
Kazuhiro Hara
PDF
Clojure.tokyo.descjop
Kazuhiro Hara
PDF
Re-frame and A-Frame
Kazuhiro Hara
PDF
ひとりアドベントカレンダーのご紹介
Kazuhiro Hara
PDF
(IDEユーザのための) ClojureのEmacs開発環境について
Kazuhiro Hara
PDF
Cryogenでサイトつくろーじぇん
Kazuhiro Hara
PDF
WebSocket+Akka(Remote)+Play 2.1 Java
Kazuhiro Hara
PDF
第2回 -Play部屋- Play 2.0はじめて&もくもく会
Kazuhiro Hara
PDF
-Play部屋- Play 2.0はじめて&もくもく会
Kazuhiro Hara
PDF
Play framework 2.0のおすすめと1.2からのアップグレード
Kazuhiro Hara
PDF
sbtマルチプロジェクトビルドの使いどころ
Kazuhiro Hara
PDF
Playbay Play 2.0 plugin イロハのイ
Kazuhiro Hara
PDF
PlayFramework 2.0 Javaと WebSocketでつくる リアルタイムMVC Webアプリケーション
Kazuhiro Hara
PDF
PlayFramework1.2.4におけるWebSocket
Kazuhiro Hara
PDF
クリーンな WordPress サイトのための PHP コーディングのお作法 ― 計画的に WordPress を拡張していくためのフレームワーク思考 |...
Kazuhiro Hara
PDF
WP Jelly vol.01 WordPress管理画面にメニューを追加しよう
Kazuhiro Hara
PDF
Play FrameworkとWeb Socketの話
Kazuhiro Hara
MDX with Next.js
Kazuhiro Hara
MDX and Next.js
Kazuhiro Hara
About Plone Conference Tokyo 2018 Frontend Day
Kazuhiro Hara
Gatsby & React Static
Kazuhiro Hara
Clojure.tokyo.descjop
Kazuhiro Hara
Re-frame and A-Frame
Kazuhiro Hara
ひとりアドベントカレンダーのご紹介
Kazuhiro Hara
(IDEユーザのための) ClojureのEmacs開発環境について
Kazuhiro Hara
Cryogenでサイトつくろーじぇん
Kazuhiro Hara
WebSocket+Akka(Remote)+Play 2.1 Java
Kazuhiro Hara
第2回 -Play部屋- Play 2.0はじめて&もくもく会
Kazuhiro Hara
-Play部屋- Play 2.0はじめて&もくもく会
Kazuhiro Hara
Play framework 2.0のおすすめと1.2からのアップグレード
Kazuhiro Hara
sbtマルチプロジェクトビルドの使いどころ
Kazuhiro Hara
Playbay Play 2.0 plugin イロハのイ
Kazuhiro Hara
PlayFramework 2.0 Javaと WebSocketでつくる リアルタイムMVC Webアプリケーション
Kazuhiro Hara
PlayFramework1.2.4におけるWebSocket
Kazuhiro Hara
クリーンな WordPress サイトのための PHP コーディングのお作法 ― 計画的に WordPress を拡張していくためのフレームワーク思考 |...
Kazuhiro Hara
WP Jelly vol.01 WordPress管理画面にメニューを追加しよう
Kazuhiro Hara
Play FrameworkとWeb Socketの話
Kazuhiro Hara
SwaggerとAPIのデザイン
1.
SwaggerとAPIのデザイン Swaggerではじめる楽々RESTful APIデザイン&ドキュメント管理 2017/5/12 Okachi.js vol.5 第1回
2.
出演 {:company “Greative.GK” :name “Kazuhiro
Hara” :twitter “@kara_d” :interest “SPA, WebVR, Clojure, Design research”}
3.
Clojure / ClojureScript
で Electronアプリケーションを 作るためのスタートキット / プラットホーム ● オープンソースにてGitHubにて公開 ● MITライセンス ● 現在のスター数 : 289 http://descjop.org/ +9 Point up
5.
本日のトピック
6.
SwaggerとAPIのデザイン http://swagger.io/
7.
もくじ 1. 問題意識 2. Swaggerとは 3.
ExpressとSwaggerのサンプルを見てみよう 4. 僕とSwagger (Clojureベースの環境で利用しています)
8.
問題意識
9.
RESTful APIのドキュメントどうしていますか?
10.
RESTful APIのドキュメントあれこれ ● Wikiで管理 ●
Word / Excelで管理 ● クラウドで同時編集可能なGoogle Docsで管理 ● リポジトリ内のドキュメント ● 何かの自動生成ツールとか
11.
RESTful APIのドキュメントあるある ● みんなに意見を聞く
12.
そこで Swagger!
13.
Swaggerとは
15.
Swagger Swagger is a
powerful open source framework backed by a large ecosystem of tools that helps you design, build, document, and consume your RESTful APIs.
16.
Swagger Swaggerは、RESTful APIの設計、構築、文書化、および使用に役立つ、大規模なエコシステムツールを使用し た強力なオープンソースフレームワークです。(by Google翻訳)
17.
発音 スゥァガー(YouTube調べ)
19.
Swaggerでできること(1) ● Swagger Editor ○
http://swagger.io/swagger-editor/ ○ APIの設計を視覚的に行うことが出来るツール ○ エディターエリアとプレビューエリアがある あとでデモします
20.
Swaggerでできること(2) ● Swagger Codegen ○
http://swagger.io/swagger-codegen/ ○ Swaggerで定義した仕様からサーバー側のコードを生成する ■ API clients ● ActionScript, Bash, C# (.net 2.0, 4.0 or later), C++ (cpprest, Qt5, Tizen), Clojure, Dart, Elixir, Go, Groovy, Haskell, Java (Jersey1.x, Jersey2.x, OkHttp, Retrofit1.x, Retrofit2.x, Feign), Node.js (ES5, ES6, AngularJS with Google Closure Compiler annotations) Objective-C, Perl, PHP, Python, Ruby, Scala, Swift (2.x, 3.x), Typescript (Angular1.x, Angular2.x, Fetch, jQuery, Node) ■ Server stubs ● C# (ASP.NET Core, NancyFx), Erlang, Go, Haskell, Java (MSF4J, Spring, Undertow, JAX-RS: CDI, CXF, Inflector, RestEasy), PHP (Lumen, Slim, Silex, Zend Expressive), Python (Flask), NodeJS, Ruby (Sinatra, Rails5), Scala (Finch, Scalatra) ■ API documentation generators: HTML, Confluence Wiki ■ Others: JMeter
21.
Swaggerでできること(3) ● Swagger UI ○
http://swagger.io/swagger-ui/ ○ Swaggerの仕様をサーバー側で実装しておくと、自動でドキュメントが生成される ○ たぶん、もっともよく使う部分 こちらもあとでデモします
22.
ExpressとSwaggerのサンプルを 見てみよう
23.
サンプル使用までの流れ swagger-node https://github.com/swagger-api/swagger-node を使います テンプレートをexpress, hapi, restify,
sailsから選べる $ npm install -g swagger $ swagger project create hello-world
24.
使ってみる(1) まずは、Swagger Editor $ swagger
project edit
25.
使ってみる(2) Swagger UIを試す /app.js を変えていく。まず、ミドルウェアライブラリの読み込み 続いて、appオブジェクトにミドルウェアを指定する サーバの起動
: http://localhost:10010/docs/ $ swagger project start var SwaggerUi = require('swagger-tools/middleware/swagger-ui'); app.use(SwaggerUi(swaggerExpress.runner.swagger));
26.
僕とSwagger
27.
Swagger UIは、様々な言語から利用できる ● Node.jsで開発している人でなくても利用できる ●
既存のアプリケーションに組み込むこともできる ● 一度仕様を作れば、万が一移植することになっても、 ドキュメント面の変更がほとんどない(出力されたものに関しては)
28.
ClojureでのAPI開発に全面的に使用 ● 使い道 :
SPA開発のAPIデザイン & バックエンド開発 ○ フロントエンドとバックエンド同時に作ったり ● compojure-apiというフレームワークでAPIを構築している ● Swaggerと統合されているのでこんなことがかんたんに出来る ○ リクエスト時のJSONの型を定義して実装にもドキュメントにも反映 ○ レスポンス時のJSONの型を定義して実装にもドキュメントにも反映 ○ Swaggerの仕様の基づいているので、実装しているAPIのパラメータ仕様などが そのままドキュメントになる ○ 開発時だけSwaggerを有効にして、本番時は無効にする
29.
サンプルコード : I/O周りの仕様定義 POST時のリクエストの仕様
(一部適当です) POST時のレスポンスの仕様 (一部適当です) (s/defschema RequestPost "POSTのスキーマ" {:data {:type (s/eq “markdown”) :attributes {:markdown s/Any}}}) (s/defschema ResponsePost "POST返り値のスキーマ" {:data {:type (s/eq “markdown”) (s/optional-key :errors) s/Any :attributes {:result s/Any}}})
30.
サンプルコード : APIの実装 (def
kara-d-api (api {:swagger (if (env/dev?) {:ui "/api-docs-markdown" :options {:ui {:validatorUrl nil}} :spec "/swagger-markdown.json" :data {:info {:title "markdown API" :description ""} :tags [{:name "api-markdown", :description ""}]}} nil) :format { ... }}} (context "/api/markdown" [] :tags ["api-markdown"] (POST "/" request :summary "markdown投稿" :body [post RequestPost] :return ResponsePost (if-not (authenticated? request) (bad-request (error/unauthorized config/api-type)) (ok (handler-api/post! post request)))) ... 他のAPI定義 ))) Swaggerの定義メタデータ 各APIの実装
31.
Swaggerいいことまとめ ● Swaggerが統合されたフレームワークであれば、実装コードにSwagger用のメタデー タを付与するだけで、ドキュメントの構築が可能 ○ 使い方は、それぞれのフレームワークのドキュメントを見よう ○
かなりの言語が対応しているはず ● 実装と仕様ドキュメントのずれがなくなる ● リポジトリで一緒に管理できる ● 動作するドキュメントとして、いろいろ試せる ● APIを設計するときに細かな仕様を考えられる ● とりあえず適当なサーバを立ち上げられる
32.
どうですか Swagger!
33.
- END - ありがとうございました 2017/5/12 Okachi.js
vol.5
Download