by Devin Yang

建立于: 6年前 ( 更新: 6年前 )

前言

最好的API是使用Swagger工具创建的,
本文介绍如何用docker来运行swagger-ui及editor,让我们创建出可测试的API文档。
在docker的环境,我们可以很轻松的启动swagger编辑器及使用者接口。

单纯Docker

启动swagger编辑器

docker run --rm p 8082:8080 swaggerapi/swagger-editor

在上方的例字中 ,我补上了 --rm,代表当停止container时,container就会被移除。

可以设置默认是否展开

API_URL加载默认文档。

DOC_EXPANSION设置为默认不展开。

docker run --rm -d -p 8083:8080 -e API_URL=https://raw.githubusercontent.com/DevinY/openapi/master/openapi-jwt.yaml -e DOC_EXPANSION='none' swaggerapi/swagger-ui

在这里的 -e代表了传入container的环境变量,可以传入环境变量,例如默认的文件。

另外,本文中默认的编辑器及UI分别使用本地的8082及8083埠,如果port被占用,请依您自己喜好调整。

我们可以轻易的在swagger-editor中经由URL或是文件上传,导入json或yaml设置档。
swagger-ui
我这里提供了一个JWT的Sample,应该可以快速上手,设置上非常直觉。
https://raw.githubusercontent.com/DevinY/openapi/master/openapi-jwt.yaml

一些参考文档:
https://swagger.io/docs/specification/data-models/data-types/
https://swagger.io/docs/specification/describing-responses/
https://swagger.io/docs/specification/describing-request-body/
https://swagger.io/docs/specification/authentication/bearer-authentication/
 

D-Laravel环境

如果您使用D-Laravel,也可经由D-Laravel的.env加载

或是修改自己的docker-compose.yml档,依service上的swagger范例,将设置拷到自己的docker-compose.yml中。

D-Laravel於v1.6.18版,已添加swagger-editor.yml及swagger-ui.yml到service中罗。

#===当您使用D-Laravel的.env功能时,请采用D-Laravel所提供的命令控制container!===
#MYSQL_ROOT_PASSWORD=secret
LARAVEL_INSTALLER='container'
DOCKER_SERVICES='docker-compose.yml service/redis.yml service/swagger-editor.yml service/swagger-ui.yml'

Tags: docker api

Devin Yang

文章内容无法一一说明,如果您有什么不了解处,欢印提问哦:)

No Comment

Post your comment

需要登入才可留言!

类似文章


docker,dlaravel

D-Laravel 1.5.5变更说明

D-Laravel的fpm image在php 7.2.1以前是使用docker php官方的dockerfile重build的, 并且所以我可以指定了fpm的默认的owner是dlaravel, --with-fpm-user=USER Set the user for php-fpm to run as. (default: nobody) --with-fpm-group=GRP Set the group for php-fpm to run as.

d-laravel, docker, laravel, docker-compose

D-Laravel v1.0.0 release变更说明

为了让container可以被更灵活运用,D-Laravel释出v1.0.0版了,此版本为不向下相容变更。 https://github.com/DevinY/dlaravel/releases/tag/v1.0.0 如果您使用为 v1.0.0 之前,您需修改Laravel项目的.env档,DB_HOST=127.0.0.1变更为DB_HOST=db 如果您有自定义的docker-compose-custom.yml档....more

docker,phpenv

用光了Docker IPv4 address pool问题解法

可能在旧版的docker环境,使用Docker compose启动容器时,会碰过下方的错误: Error response from daemon: could not find an available, non-overlapping IPv4 address pool among the defaults to assign to the network这其实这是default-address-pools用光的症状,有些环境,docker-compose默认会使用Class B的私有网络。172段的私有IP是有范围的,从172.16.0.0到172.31.255.255。也就是说,当我们起动一个docker-compose的Project,就会吃掉一个Class B的私有段,非常豪迈,