Ini adalah proyek Swagger Codegen, yang memungkinkan pembuatan pustaka klien API (pembuatan SDK), stub server, dan dokumentasi secara otomatis dengan Spesifikasi OpenAPI.
Jika Anda ingin berkontribusi, silakan lihat pedoman dan daftar tugas terbuka.
Untuk informasi lebih lanjut, silakan merujuk ke halaman Wiki dan FAQ ?
⚠️ dokumen ini mengacu pada versi 2.X, periksa di sini untuk 3.X.
Baris Swagger Codegen versi 2.X dan 3.X tersedia dan dikelola secara independen.
CATATAN:
Versi 2.X ( io.swagger
) dan 3.X ( io.swagger.codegen.v3
) memiliki id grup yang berbeda .
OpenAPI 3.0.X hanya didukung dari versi 3.X.
Untuk informasi versi lengkap, silakan merujuk ke dokumentasi versi.
Saat ini, bahasa/kerangka kerja berikut ini didukung:
Klien API : ActionScript , Ada , Apex , Bash , C# (.net 2.0, 3.5 atau lebih baru), C++ (cpprest, Qt5, Tizen), Clojure , Dart , Elixir , Elm , Eiffel , Erlang , Go , Groovy , Haskell (http -klien, Pelayan), Java (Jersey1.x, Jersey2.x, OkHttp, Retrofit1.x, Retrofit2.x, Feign, RestTemplate, RESTEasy, Vertx, Pustaka Klien Google API untuk Java, Yakinlah), Kotlin , Lua , Node.js (ES5, ES6, AngularJS dengan anotasi Google Closure Compiler) Objective-C , Perl , PHP , PowerShell , Python , R , Ruby , Rust (rust, karat-server), Scala (akka, http4s, swagger-async- httpclient), Swift (2.x, 3.x, 4.x, 5.x), TypeScript (Angular1.x, Angular2.x, Fetch, jQuery, Node)
Rintisan server : Ada , C# (ASP.NET Core, NancyFx), C++ (Pistache, Restbed), Erlang , Go , Haskell (Servant), Java (MSF4J, Spring, Undertow, JAX-RS: CDI, CXF, Inflector, RestEasy , Play Framework, PKMST), Kotlin , PHP (Lumen, Slim, Silex, Symfony, Zend Expressive), Python (Flask), NodeJS , Ruby (Sinatra, Rails5), Rust (rust-server), Scala (Finch, Lagom, skalatra)
Generator dokumentasi API : HTML , Confluence Wiki
File konfigurasi : Apache2
Lainnya : JMeter
Lihat OpenAPI-Spec untuk informasi tambahan tentang proyek OpenAPI.
Pembuatan versi
Kesesuaian
Memulai
Generator
Untuk menghasilkan perpustakaan klien sampel
Menghasilkan perpustakaan dari server Anda
Memvalidasi Spesifikasi OpenAPI Anda
Menghasilkan dokumentasi api html dinamis
Menghasilkan dokumentasi api html statis
Integrasi Alur Kerja
Generator Daring
Kontribusi
Tim Inti Codegen Swagger
Spesifikasi OpenAPI telah mengalami 3 revisi sejak awal pembuatan pada tahun 2010. Versi stabil proyek Swagger Codegen saat ini memiliki kompatibilitas berikut dengan Spesifikasi OpenAPI:
Versi Kodegen Swagger | Tanggal Rilis | Kompatibilitas Spesifikasi Swagger / OpenAPI | Catatan |
---|---|---|---|
3.0.62 ( saat ini stabil ) | 27-08-2024 | 1.0, 1.1, 1.2, 2.0, 3.0 | menandai v3.0.62 |
2.4.43 ( saat ini stabil ) | 09-08-2024 | 1.0, 1.1, 1.2, 2.0 | tandai v2.4.42 |
Berikut juga ikhtisar tentang apa yang akan terjadi:
Versi Kodegen Swagger | Tanggal Rilis | Kompatibilitas Spesifikasi Swagger / OpenAPI | Catatan |
---|---|---|---|
3.0.63-SNAPSHOT (3.0.0 saat ini, rilis minor mendatang) SNAPSHOT | TBD | 1.0, 1.1, 1.2, 2.0, 3.0 | Rilis kecil |
2.4.44-SNAPSHOT (master saat ini, rilis minor mendatang) SNAPSHOT | TBD | 1.0, 1.1, 1.2, 2.0 | Rilis kecil |
Untuk rincian rincian semua versi, silakan lihat daftar kompatibilitas lengkap.
Untuk memulai dan menjalankan Swagger Codegen, lihat panduan dan instruksi berikut:
Prasyarat
Bangunan
Menggunakan Docker
Setelah Anda menyiapkan lingkungan, Anda siap untuk mulai membuat klien dan/atau server.
Sebagai contoh singkat, untuk membuat klien PHP untuk https://petstore.swagger.io/v2/swagger.json, Anda dapat menjalankan perintah berikut:
git clone https://github.com/swagger-api/swagger-codegencd swagger-codegen paket bersih mvn java -jar module/swagger-codegen-cli/target/swagger-codegen-cli.jar menghasilkan -i https://petstore.swagger.io/v2/swagger.json -l php -o /var/tmp/php_api_client
Catatan: jika Anda menggunakan Windows, ganti perintah terakhir dengan
java -jar moduleswagger-codegen-clitargetswagger-codegen-cli.jar menghasilkan -i https://petstore.swagger.io/v2/swagger.json -l php -o c:tempphp_api_client
Anda juga dapat mendownload JAR (rilis terbaru) langsung dari maven.org
Untuk mendapatkan daftar opsi umum yang tersedia, Anda dapat menjalankan yang berikut ini:
java -jar module/swagger-codegen-cli/target/swagger-codegen-cli.jar membantu menghasilkan
Untuk mendapatkan daftar opsi yang ditentukan PHP (yang dapat diteruskan ke generator dengan file konfigurasi melalui opsi -c
), silakan jalankan
java -jar modul/swagger-codegen-cli/target/swagger-codegen-cli.jar config-help -l php
Anda dapat membangun klien dengan contoh API petstore swagger sebagai berikut:
./bin/java-petstore.sh
(Di Windows, jalankan .binwindowsjava-petstore.bat
saja)
Ini akan menjalankan generator dengan perintah ini:
java -jar module/swagger-codegen-cli/target/swagger-codegen-cli.jar menghasilkan -i https://petstore.swagger.io/v2/swagger.json -l jawa -o sampel/klien/toko hewan peliharaan/java
dengan sejumlah pilihan. Anda bisa mendapatkan opsi dengan perintah help generate
(di bawah hanya menampilkan sebagian hasil):
NAME
swagger-codegen-cli generate - Generate code with chosen lang
SYNOPSIS
swagger-codegen-cli generate
[(-a | --auth )]
[--additional-properties ...]
[--api-package ] [--artifact-id ]
[--artifact-version ]
[(-c | --config )]
[-D ...] [--git-repo-id ]
[--git-user-id ] [--group-id ]
[--http-user-agent ]
(-i | --input-spec )
[--ignore-file-override ]
[--import-mappings ...]
[--instantiation-types ...]
[--invoker-package ]
(-l | --lang )
[--language-specific-primitives ...]
[--library ] [--model-name-prefix ]
[--model-name-suffix ]
[--model-package ]
[(-o
Anda kemudian dapat mengkompilasi dan menjalankan klien, serta pengujian unit terhadapnya:
cd sampel/klien/petstore/java paket mvn
Bahasa lain juga memiliki contoh toko hewan peliharaan:
./bin/android-petstore.sh ./bin/java-petstore.sh ./bin/objc-petstore.sh
Caranya mudah--cukup gunakan tanda -i
untuk menunjuk ke server atau file.
? Swagger Codegen hadir dengan banyak fleksibilitas untuk mendukung preferensi pembuatan kode Anda. Lihat dokumentasi generator yang akan membawa Anda melalui beberapa kemungkinan serta menunjukkan cara menghasilkan dari file lokal dan mengabaikan format file.
Anda mungkin tidak ingin membuat semua model di proyek Anda. Demikian pula, Anda mungkin ingin hanya satu atau dua api yang ditulis. Jika demikian, periksa instruksi pembuatan selektif.
Ada berbagai aspek dalam menyesuaikan pembuat kode lebih dari sekadar membuat atau memodifikasi templat. Setiap bahasa memiliki file konfigurasi pendukung untuk menangani jenis pemetaan yang berbeda, atau membawa model Anda sendiri. Untuk informasi lebih lanjut, lihat dokumen konfigurasi lanjutan.
Anda punya pilihan. Cara termudah adalah dengan menggunakan validator online kami yang tidak hanya memungkinkan Anda memvalidasi spesifikasi Anda, namun dengan tanda debug, Anda dapat melihat apa yang salah dengan spesifikasi Anda. Misalnya periksa Swagger Validator.
Jika Anda ingin mendapatkan validasi langsung di mesin Anda sendiri, maka Spectral adalah pilihan yang sangat baik.
Untuk melakukannya, cukup gunakan flag -l dynamic-html
saat membaca file spesifikasi. Ini menciptakan dokumentasi HTML yang tersedia sebagai aplikasi satu halaman dengan AJAX. Untuk melihat dokumentasi:
sampel cd/dinamis-html/ instalasi npm simpul.
Yang meluncurkan server node.js sehingga panggilan AJAX dapat dilakukan.
Untuk melakukannya, cukup gunakan flag -l html
saat membaca file spesifikasi. Ini menciptakan satu file HTML sederhana dengan css tertanam sehingga Anda dapat mengirimkannya sebagai lampiran email, atau memuatnya dari sistem file Anda:
sampel cd/html/ buka indeks.html
Anda dapat memanfaatkan Swagger Codegen secara langsung dalam alur kerja CI/CD pilihan Anda untuk menyederhanakan kebutuhan pembuatan otomatis Anda. Lihat panduan integrasi alur kerja untuk melihat informasi tentang opsi integrasi Maven, Gradle, dan GitHub kami. ?
Jika Anda tidak ingin menjalankan dan menghosting instance pembuatan kode Anda sendiri, periksa informasi generator online kami.
Silakan merujuk ke halaman ini
Anggota tim inti Swagger Codegen adalah kontributor yang telah memberikan kontribusi signifikan (meninjau masalah, memperbaiki bug, melakukan penyempurnaan, dll) pada proyek secara rutin.
Anggota tim inti memikul tanggung jawab berikut:
Memberikan bimbingan dan arahan kepada pengguna lain
Ulasan menarik permintaan dan masalah
Meningkatkan generator dengan melakukan penyempurnaan, memperbaiki bug, atau memperbarui dokumentasi
Menetapkan arah teknis generator
Harap ungkapkan masalah atau kerentanan terkait keamanan apa pun dengan mengirim email ke [email protected], alih-alih menggunakan pelacak masalah publik.
Proyek Swagger Codegen dimaksudkan sebagai manfaat bagi pengguna Spesifikasi Swagger / Open API. Proyek itu sendiri memiliki Lisensi sebagaimana ditentukan. Selain itu, harap pahami poin-poin berikut:
Templat yang disertakan dengan proyek ini tunduk pada Lisensi.
Kode yang dihasilkan sengaja tidak tunduk pada lisensi proyek induk
Ketika kode dihasilkan dari proyek ini, kode tersebut akan dianggap SEBAGAIMANA ADANYA dan dimiliki oleh pengguna perangkat lunak. Tidak ada jaminan--tersurat maupun tersirat--untuk kode yang dihasilkan. Anda dapat melakukan apa pun yang Anda inginkan dengannya, dan setelah dibuat, kode tersebut menjadi tanggung jawab Anda dan tunduk pada persyaratan lisensi yang Anda anggap tepat.
Kami ingin mengucapkan terima kasih yang sebesar-besarnya kepada semua pihak yang telah berkontribusi pada Swagger Codegen, baik yang mengangkat masalah, memperbaiki bug, membuat template, atau membuat konten bermanfaat yang dapat dimanfaatkan oleh orang lain.