Untuk beberapa REST API yang ditulis dalam PHP, saya diminta untuk membuat dokumentasi Swagger , dan karena saya tidak mengetahui cara mudah untuk menambahkan anotasi ke API yang ada tersebut dan membuat dokumentasi seperti itu, saya menggunakan editor ini untuk menghasilkan beberapa untuk saat ini.
Saya menyimpan file JSON dan YAML yang dibuat menggunakan editor itu, dan sekarang saya perlu membuat dokumentasi Swagger interaktif terakhir (pernyataan ini mungkin terdengar naif dan tidak jelas).
Adakah yang bisa memberi tahu saya bagaimana cara mengonversi file spesifikasi Swagger JSON menjadi dokumentasi Swagger yang sebenarnya?
Saya menggunakan platform Windows dan tidak tahu apa-apa tentang Ant / Maven.
yaml
swagger
swagger-php
Salil
sumber
sumber
Jawaban:
Saya tidak puas dengan
swagger-codegen
saat saya mencari alat untuk melakukan ini, jadi saya menulis sendiri. Lihat bootprint-swaggerTujuan utama dibandingkan
swagger-codegen
adalah untuk menyediakan pengaturan yang mudah (meskipun Anda memerlukan nodejs). Dan seharusnya mudah untuk menyesuaikan gaya dan template dengan kebutuhan Anda sendiri, yang merupakan fungsionalitas inti dari bootprint -projectsumber
spectacle
menghasilkan dokumentasi yang jauh lebih baik dari JSON yang angkuhCoba gunakan redoc-cli .
Saya menggunakan bootprint-openapi oleh yang saya menghasilkan banyak file (
bundle.js
,bundle.js.map
,index.html
,main.css
danmain.css.map
) dan kemudian Anda dapat mengubahnya menjadi satu.html
file menggunakan html-inline untuk menghasilkan sederhanaindex.html
berkas.Kemudian saya menemukan redoc-cli sangat mudah digunakan dan hasilnya benar-benar-2 mengagumkan, satu file index.html dan indah .
Instalasi :
npm install -g redoc-cli
Penggunaan :
redoc-cli bundle -o index.html swagger.json
sumber
npx redoc-cli ...
lebih bisa diandalkan.Semuanya terlalu sulit atau didokumentasikan dengan buruk jadi saya menyelesaikan ini dengan skrip sederhana swagger-yaml-to-html.py , yang berfungsi seperti ini
python swagger-yaml-to-html.py < /path/to/api.yaml > doc.html
Ini untuk YAML tetapi memodifikasinya agar bekerja dengan JSON juga sepele.
sumber
Lihat barang-barang cantik
Memiliki
Saya melihat Swagger Editor dan mengira itu bisa mengekspor panel pratinjau tetapi ternyata tidak bisa. Jadi saya menulis versi saya sendiri.
Pengungkapan Penuh: Saya adalah pembuat alat tersebut.
sumber
allOf
dalam dokumen menghasilkanundefined
, bahkan dalam skenario yang paling sederhana ("menggabungkan" satu objek, setara dengan tidak menggunakanallOf
sama sekali).allOf
fitur untuk Anda. Coba lihat.Lihat proyek swagger-api / swagger-codegen di GitHub; proyek README menunjukkan bagaimana menggunakannya untuk menghasilkan HTML statis. Lihat Membuat dokumentasi api html statis .
Jika Anda ingin melihat swagger.json, Anda dapat menginstal UI Swagger dan menjalankannya. Anda cukup menerapkannya di server web (folder dist setelah Anda mengkloning repo dari GitHub) dan melihat UI Swagger di browser Anda. Ini adalah aplikasi JavaScript.
sumber
Saya menghabiskan banyak waktu dan mencoba banyak solusi berbeda - pada akhirnya saya melakukannya dengan cara ini:
<html> <head> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/swagger-ui.css"> <script src="//unpkg.com/swagger-ui-dist@3/swagger-ui-bundle.js"></script> <script> function render() { var ui = SwaggerUIBundle({ url: `path/to/my/swagger.yaml`, dom_id: '#swagger-ui', presets: [ SwaggerUIBundle.presets.apis, SwaggerUIBundle.SwaggerUIStandalonePreset ] }); } </script> </head> <body onload="render()"> <div id="swagger-ui"></div> </body> </html>
Anda hanya perlu memiliki jalur / ke / my / swagger.yaml yang dilayani dari lokasi yang sama.
(atau gunakan header CORS)
sumber
Anda juga dapat mengunduh ui swagger dari: https://github.com/swagger-api/swagger-ui , ambil folder dist, ubah index.html: ubah konstruktor
const ui = SwaggerUIBundle({ url: ...,
ke
const ui = SwaggerUIBundle({ spec: YOUR_JSON,
sekarang folder dist berisi semua yang Anda butuhkan dan dapat didistribusikan apa adanya
sumber
Lihat tautan ini: http://zircote.com/swagger-php/installation.html
Jika Anda membutuhkan bantuan lain, jangan ragu untuk bertanya.
sumber
Ada program Java kecil yang menghasilkan docs (adoc atau md) dari file yaml.
Swagger2MarkupConfig config = new Swagger2MarkupConfigBuilder() .withMarkupLanguage(MarkupLanguage.ASCIIDOC) .withSwaggerMarkupLanguage(MarkupLanguage.ASCIIDOC) .withOutputLanguage(Language.DE) .build(); Swagger2MarkupConverter builder = Swagger2MarkupConverter.from(yamlFileAsString).withConfig(config).build(); return builder.toFileWithoutExtension(outFile);
Sayangnya itu hanya mendukung OpenAPI 2.0 tetapi tidak OpenAPI 3.0 .
sumber
Untuk Swagger API 3.0, menghasilkan kode klien Html2 dari Swagger Editor online sangat cocok untuk saya!
sumber