swagger-editor はデフォルトではローカルにファイルを保存できない。backend と呼ばれる REST API 経由でエディタに表示する内容を取得したり、エディタで編集した内容を保存させたりすることは可能なようだった。(swagger-editor/config.md 参照。)
自分で REST API を作るのは面倒だったので探してみたら、zgiber/sweb: Swagger Editor Backend というのが見つかった。go で backend の REST API が実装されていて、かつ swagger-editor のコンパイル済アセットが bindata.go にまるごと埋めこまれている (!) ので、このリポジトリ単体で swagger-editor + backend を実現することができる。便利。
簡単な使い方のメモ:
$ ls
Dockerfile doc/ sweb.sh
$ ls doc/rest-api.yml
doc/rest-api.yml
$ cat Dockerfile
FROM golang:latest
RUN go get -u github.com/zgiber/sweb
CMD sweb -f /doc/rest-api.yml
$ cat sweb.sh
docker build -t sweb .
docker run -p 8765:8765 -v $(pwd)/doc:/doc -ti sweb
$ sh sweb.sh
(略)
ここまでやると http://localhost:8765 で swagger-editor にアクセスできるようになり、デフォルトで doc/rest-api.yml
の内容が表示される。編集するとホスト側の doc/rest-api.yml
にも内容が反映される。