•   lifeisegg
  • 2018年08月19日
  • タグ Tools FrameWork

Swagger

RESTful API構築するためのフレームワーク

Swagger?

APIで作業したことがあるならば、あなたはSwaggerについて聞いたことがあります。Swaggerは、OpenAPI仕様(OAS)を使用してAPIを開発するための最も広く使用されているツールエコシステムです。Swaggerは、オープンソースとプロの両方のツールで構成されており、ほぼすべてのニーズとユースケースに対応しています。

簡単な歴史の教訓

闊歩を 使用 仕様との大きな生態系から成るように  ツール 仕様を実装します。これらのツールには、フロントエンドのユーザーインターフェイス、低レベルのコードライブラリ、商用のAPI管理ソリューションなどが含まれます。2015年に SmartBear Software はSwagger仕様をLinux Foundationに寄贈し、仕様をOpenAPI仕様に改めました。また、SmartBearは、オープンで透明な方法でOASの開発を統治する機関であるOpenAPIイニシアティブ(OAI)の創設メンバーにもなりました。

参考;swagger getting started

Swaggerとは

RESTful APIのドキュメントや、サーバ、クライアントコード、エディタ、またそれらを扱うための仕様などを提供するフレームワーク

Swaggerのメリット

  • AMLの記法で書ける(※JSONでも書ける)
  • YAMLで記述したAPI定義を元に、 多数の言語によるAPIモックアプリケーションを簡単に作成できる
  • APIドキュメントの自動生成ができる
  • 各エントリーポイントに対してパラメーターも指定できる
  • AWSのAPI Gatewayに反映できる

Swaggerのデメリット

  • 周辺ツールが豊富すぎてベストな開発方法を見つけるのに時間がかかる
  • REST APIの定義のために作られているため、モックで実現したい記法がドキュメントになく迷うことがある

Swaggerのツール

  • Swagger SpecREST APIに対してSwaggerの仕様に準じたドキュメント
  • Swagger CoreAPI実装コードからSwagger Specで記載された設計を自動生成
  • Swagger CodegenSwagger Specで記載された設計からAPIのスタブを自動生成
  • Swagger UISwagger Specで記載された設計からドキュメントを自動生成
  • Swagger EditorSwagger Specの設計書を記載するためのエディタ

Swagger Setting

環境OS:CentOS Linux release 7.5.1804 (Core)

# yum update
$ sudo yum update

# nodejs install
$ sudo yum install -y wget nodejs gcc-c++ make unzip

# yumでInstall出来ない場合、nodejs install
$ curl -sL https://rpm.nodesource.com/setup_8.x | bash -
$ sudo yum install -y wget nodejs gcc-c++ make unzip

# httpサーバーセット
$ sudo npm install -g http-server
# swagger editor download
$ wget https://github.com/swagger-api/swagger-editor/releases/download/v2.10.4/swagger-editor.zip
$ unzip ./swagger-editor.zip
# swagger editor 実行する
$ http-server swagger-editor
Starting up http-server, serving swagger-editor
Available on:
  http://127.0.0.1:8080
  http://10.0.2.15:8080
  http://192.168.33.10:8080
Hit CTRL-C to stop the server

Swagger Editor

swagger editor

Generate Client

image

Generate Server

image

コメント

コメントを追加

user-symbol

Stay in touch

ビジネスおよび開発者向けの実用的な最新情報をご希望ですか?

ソースコードプロジェクトに対するPieceXコミュニティのニーズについてご提供します。

PieceXの最新の無料コミュニティコードプロジェクトをいち早くお知らせします。