مولد Openapi
إذا كنت ترغب في المساهمة ، فيرجى الرجوع إلى الإرشادات وقائمة المهام المفتوحة.
‼ ️ للترحيل من Swagger Codegen إلى OpenAPI Generator ، يرجى الرجوع إلى دليل الترحيل ‼ ️
؟ لمزيد من المعلومات ، يرجى الرجوع إلى صفحة الويكي والأسئلة الشائعة؟
؟ يعد الكتاب الإلكتروني دليل المبتدئين لتوليد الكود لـ REST APIs نقطة انطلاق جيدة للمبتدئين؟
️ إذا تم الحصول على مواصفات OpenAPI أو القوالب أو أي مدخلات (على سبيل المثال أو متغيرات البيئة) من مصدر أو بيئة غير موثوق بها ، فيرجى التأكد قضايا الأمن المحتملة (مثل حقن الكود). للحصول على ثغرات الأمن ، يرجى الاتصال بـ [email protected]. ️
‼ ️ كل من "أدوات Openapi" (https://openapitools.org - المنظمة الأم لمولد OpenAPI) و "OpenAPI Generator" لا ينتمون إلى مبادرة OpenAPI (OAI) ‼ ️
الرعاة
إذا وجدت مولد OpenAPI مفيدًا للعمل ، فيرجى التفكير في مطالبة شركتك بدعم هذا المشروع مفتوح المصدر من خلال أن تصبح راعياً. يمكنك أيضًا رعاية المشروع بشكل فردي من خلال أن تصبح مؤيدًا.
شكرا لك الرعاة البرونزية لدينا!
شكرًا لك Godaddy على رعايته لأسماء النطاقات ، Linode لرعايتها ، ومسككًا لرعاية مراقبة API و Gradle لرعاية Develocity
ملخص
يسمح OpenAPI Generator بتوليد مكتبات عملاء API (Generation SDK) ، وعبادة الخادم ، والتوثيق والتكوين تلقائيًا مواصفات OpenAPI (يتم دعم كلاهما 2.0 و 3.0). حاليًا ، يتم دعم اللغات/الأطر التالية:
| اللغات/الأطر |
---|
عملاء API | Actionscript ، ADA ، Ada ، Apex ، Bash ، C ، C# (.NET 2.0 ، 3.5 أو الأحدث ، .NET Standard 1.3 - 2.1 ، .NET Core 3.1 ، .NET 5.0. المكتبات: RESTSHARP ، GENERICHOST ، HTTPCLIENT) ، C ++ (ARDUINO ، CPP ، CPP -restsdk ، QT5 ، Tizen ، Unreal Engine 4) ، Clojure ، Crystal ، Dart ، Elixir ، Elm ، Eiffel ، Eifl ، Go ، Groovy ، Haskell (Http-Client ، servant) ، Java (Apache Httpclient 4.x ، Apache Htpclient 5 .x ، jersey2.x ، okhttp ، retrofit1.x ، retrofit2 ) ، Jetbrains HTTP Client ، Julia ، K6 ، Kotlin ، Lua ، N4JS ، NIM ، Node.js/JavaScript (ES5 ، ES6 ، AngularJS مع تواضعات ترجم Google ، وأنواع التدفق ، Datastore Apollo) ، Objective-C ، Ocaml ، Perl ، Perl ، ، PHP ، Powershell ، Python ، R ، Ruby ، Rust (Hyper ، ReqWest ، Rust-Server) ، Scala (Akka ، Http4s ، Scalaz ، Sttp ، Swagger-Async-Httpclient ، Pekko) ، Swift (2.x ، 3.x ، 3.x ، 3.x ، ، 4.x ، 5.x ، 6.x) ، TypeScript (AngularJs ، Angular (9.x - 18.x) ، aurelia ، axios ، fetch ، conversify ، jquery ، nestjs ، node ، redux -query ، rxjs) ، Xojo ، Zapier |
كعب الخادم | ADA ، C# (ASP.NET CORE ، وظائف Azure) ، C ++ (Pistache ، RESTBED ، QT5 QHTTPENGINE) ، ERLANG ، F# (GIRAFFE) ، GO (NET/HTTP ، GIN ، ECHO) ، Haskell (Servant ، Yesod) ، Java ( MSF4J ، Spring ، Instertow ، Jax-RS: CDI ، CXF ، Soundector ، Jersey ، Resteasy ، Play Framework ، PKMST ، Vert.x ، Apache Camel ، Helidon) ، Julia ، Kotlin (Spring Boot ، Ktor ، Vert.x) ، php (الطيران ، لارافيل ، لومن ، Mezzio (FKA Zend Expressive) ، Slim ، Silex ، Symfony) ، Python (Fastapi ، Flask) ، Nodejs ، Ruby (Sinatra ، Rails5) ، Rust (Rust-Server) ، Scala (Akka ، Finch ، Lagom ، Play ، Cask ، Scalatra) |
مولدات وثائق API | HTML ، Confluence Wiki ، Asciidoc ، Markdown ، Plantuml |
ملفات التكوين | Apache2 |
آحرون | GraphQl ، Jmeter ، Ktorm ، MySQL Schema ، مجموعة Postman ، المخزن المؤقت للبروتوكول ، WSDL |
جدول المحتويات
- مولد Openapi
- ملخص
- جدول المحتويات
- 1 - التثبيت
- 1.1 - التوافق
- 1.2 - القطع الأثرية على Maven Central
- 1.3 - تنزيل جرة
- 1.4 - بناء المشاريع
- 1.5 - البيرة
- 1.6 - Docker
- 1.7 - NPM
- 2 - بدأت
- 3 - الاستخدام
- 3.1 - التخصيص
- 3.2 - تكامل سير العمل
- 3.3 - المولدات عبر الإنترنت
- 3.4 - معلومات الترخيص على الرمز الذي تم إنشاؤه
- 3.5 - تكامل IDE
- 4 - شركات/مشاريع باستخدام مولد OpenAPI
- 5 - العروض التقديمية/مقاطع الفيديو/البرامج التعليمية/الكتب
- 6 - عنا
- 6.1 - فريق Openapi Generator Core
- 6.2 - اللجنة الفنية لمولد OpenAPI
- 6.3 - تاريخ مولد Openapi
- 7 - ترخيص
1 - التثبيت
1.1 - التوافق
خضعت لمواصفات OpenAPI 3 مراجعات منذ الإنشاء الأولي في عام 2010. يحتوي مشروع المولود OpenAPI على التوافق التالي مع مواصفات OpenAPI:
نسخة مولد Openapi | تاريخ الافراج عنه | ملحوظات |
---|
7.11.0 (الإصدار الثانوي القادم) لقطة | 20.12.2024 | إطلاق طفيف مع تغييرات كسر (مع احتياطي) |
7.10.0 (أحدث إصدار مستقر) | 18.11.2024 | إطلاق طفيف مع تغييرات كسر (مع احتياطي) |
6.6.0 | 11.05.2023 | إطلاق طفيف مع تغييرات كسر (مع احتياطي) |
5.4.0 | 31.01.2022 | إطلاق طفيف مع تغييرات كسر (مع احتياطي) |
4.3.1 | 06.05.2020 | إصدار التصحيح (التحسينات ، إصلاحات الأخطاء ، إلخ) |
Openapi Spec توافق: 1.0 ، 1.1 ، 1.2 ، 2.0 ، 3.0 ، 3.1 (دعم بيتا)
(لا ننشر بناء يوميًا/ليليًا. يرجى استخدام Snapshot بدلاً من ذلك)
للإصدارات القديمة ، يرجى الرجوع إلى صفحة الإصدار .
بالنسبة للمولدات/المكتبات/الأطر غير المتقدمة ، يرجى الرجوع إلى تسمية "إيقاف التشغيل" في صفحة طلب السحب.
1.2 - القطع الأثرية على Maven Central
يمكنك العثور على القطع الأثرية التي تم إصدارها على Maven Central:
جوهر:
< dependency >
< groupId >org.openapitools</ groupId >
< artifactId >openapi-generator</ artifactId >
< version >${openapi-generator-version}</ version >
</ dependency >
شاهد الإصدارات المختلفة من Artifact Openapi-Generator المتوفرة على Maven Central.
CLI:
< dependency >
< groupId >org.openapitools</ groupId >
< artifactId >openapi-generator-cli</ artifactId >
< version >${openapi-generator-version}</ version >
</ dependency >
شاهد الإصدارات المختلفة من قطعة القطع الأثرية المولدة Openapi المتوفرة على Maven Central.
مكون مافن المكون الإضافي:
< dependency >
< groupId >org.openapitools</ groupId >
< artifactId >openapi-generator-maven-plugin</ artifactId >
< version >${openapi-generator-version}</ version >
</ dependency >
- شاهد الإصدارات المختلفة من قطعة القطع الأثرية المولدة من Openapi-Maven-Plugin على Maven Central.
- ReadMe
البرنامج المساعد Gradle:
< dependency >
< groupId >org.openapitools</ groupId >
< artifactId >openapi-generator-gradle-plugin</ artifactId >
< version >${openapi-generator-version}</ version >
</ dependency >
- شاهد الإصدارات المختلفة من قطعة القطع الأثرية-Plugin-Plugin المتوفرة على Maven Central.
- ReadMe
1.3 - تنزيل جرة
إذا كنت تبحث عن أحدث إصدار مستقر ، فيمكنك الاستيلاء عليه مباشرة من Maven.org (Java 11 Runtime على الأقل):
جرة الموقع: https://repo1.maven.org/maven2/org/openapitools/openapi-generator-cli/7.10.0/openapi-generator-cli-7.10.0.jar
لمستخدمي Mac/Linux :
wget https://repo1.maven.org/maven2/org/openapitools/openapi-generator-cli/7.10.0/openapi-generator-cli-7.10.0.jar -O openapi-generator-cli.jar
بالنسبة لمستخدمي Windows ، ستحتاج إلى تثبيت WGET أو يمكنك استخدام Invoke-WebRequest في PowerShell (3.0+) ، على سبيل المثال
Invoke-WebRequest -OutFile openapi-generator-cli.jar https://repo1.maven.org/maven2/org/openapitools/openapi-generator-cli/7.10.0/openapi-generator-cli-7.10.0.jar
بعد تنزيل الجرة ، قم بتشغيل java -jar openapi-generator-cli.jar help
لإظهار الاستخدام.
بالنسبة لمستخدمي Mac ، يرجى التأكد من تثبيت Java 11 (نصائح: تشغيل java -version
للتحقق من الإصدار) ، وتصدير JAVA_HOME
من أجل استخدام إصدار Java المدعوم:
export JAVA_HOME= ` /usr/libexec/java_home -v 1.11 `
export PATH= ${JAVA_HOME} /bin: $PATH
نص قاذفة
أحد الجوانب السلبية لتنزيلات JAR اليدوية هو أنك لا تستمر في الحصول على أحدث إصدار تم إصداره. لدينا نص قاذفة باش في bin/utils/openapi-generator.cli.sh الذي يحل هذه المشكلة.
لتثبيت البرنامج النصي Launcher ، انسخ محتويات البرنامج النصي إلى موقع على مسارك وجعل البرنامج النصي قابل للتنفيذ.
مثال على إعداد هذا (ملاحظة: قم دائمًا بتقييم البرامج النصية المترو من الأنظمة الخارجية قبل تنفيذها).
mkdir -p ~/bin/openapitools
curl https://raw.githubusercontent.com/OpenAPITools/openapi-generator/master/bin/utils/openapi-generator-cli.sh > ~/bin/openapitools/openapi-generator-cli
chmod u+x ~/bin/openapitools/openapi-generator-cli
export PATH=$PATH:~/bin/openapitools/
الآن ، يتم "تثبيت" openapi-generator-cli
. عند الاحتجاج ، سيستفسر عن مستودع GitHub لإصدار أحدث تم إصداره مؤخرًا. إذا كان هذا يتطابق مع الجرة الأخيرة التي تم تنزيلها ، فسيتم تنفيذها بشكل طبيعي. إذا تم العثور على إصدار أحدث ، فسيقوم البرنامج النصي بتنزيل أحدث إصدار وتنفيذه.
إذا كنت بحاجة إلى استدعاء إصدار أقدم من المولد ، فيمكنك تحديد المتغير OPENAPI_GENERATOR_VERSION
إما مخصصًا أو عالميًا. يمكنك تصدير هذا المتغير إذا كنت ترغب في استمرار إصدار إصدار محدد.
أمثلة:
# Execute latest released openapi-generator-cli
openapi-generator-cli version
# Execute version 4.1.0 for the current invocation, regardless of the latest released version
OPENAPI_GENERATOR_VERSION=4.1.0 openapi-generator-cli version
# Execute version 4.1.0-SNAPSHOT for the current invocation
OPENAPI_GENERATOR_VERSION=4.1.0-SNAPSHOT openapi-generator-cli version
# Execute version 4.0.2 for every invocation in the current shell session
export OPENAPI_GENERATOR_VERSION=4.0.2
openapi-generator-cli version # is 4.0.2
openapi-generator-cli version # is also 4.0.2
# To "install" a specific version, set the variable in .bashrc/.bash_profile
echo "export OPENAPI_GENERATOR_VERSION=4.0.2" >> ~/.bashrc
source ~/.bashrc
openapi-generator-cli version # is always 4.0.2, unless any of the above overrides are done ad hoc
1.4 - بناء المشاريع
للبناء من المصدر ، تحتاج إلى تثبيت ومتوفر في $PATH:
بعد استنساخ المشروع ، يمكنك بنائه من المصدر باستخدام Maven Wrapper:
- Linux:
./mvnw clean install
- Windows:
mvnw.cmd clean install
مستخدمي NIX
إذا كنت من مستخدمي NIX ، فيمكنك إدخال قذيفة OpenAPI Generator ، عن طريق الكتابة:
سوف يدخل قذيفة مع تثبيت Java 11.
يدعم DirenV تحميل قذيفة مطور NIX تلقائيًا ، لذلك إذا كنت تستخدم direnv أيضًا ، فاكتب:
وقم بإعداد java
و mvn
مع الإصدارات الصحيحة في كل مرة تقوم فيها بإدخال دليل المشروع.
يحتوي البناء الافتراضي على الحد الأدنى من التحليل الثابت (عبر CheckStyle). لتشغيل بنيتك باستخدام PMD و Spotbugs ، استخدم ملف static-analysis
:
- Linux:
./mvnw -Pstatic-analysis clean install
- Windows:
mvnw.cmd -Pstatic-analysis clean install
1.5 - البيرة
للتثبيت ، قم بتشغيل brew install openapi-generator
فيما يلي مثال على استخدام عميل روبي:
openapi-generator generate -i https://raw.githubusercontent.com/openapitools/openapi-generator/master/modules/openapi-generator/src/test/resources/3_0/petstore.yaml -g ruby -o /tmp/test/
لإعادة التثبيت مع أحدث ماجستير ، قم بتشغيل brew uninstall openapi-generator && brew install --HEAD openapi-generator
لتثبيت OpenJDK (المتطلبات المسبقة) ، يرجى التشغيل
brew tap AdoptOpenJDK/openjdk
brew install --cask adoptopenjdk11
export JAVA_HOME= ` /usr/libexec/java_home -v 1.11 `
أو تنزيل المثبت عبر https://adoptium.net/
لتثبيت Maven (اختياري) ، يرجى التشغيل
1.6 - Docker
صور دكتوكر عامة مصنوعة مسبقا
- https://hub.docker.com/r/openapitools/openapi-generator-cli/ (CLI)
- https://hub.docker.com/r/openapitools/openapi-generator-online/ (خدمة الويب الرسمية)
Openapi Generator Cli Docker Image
تعمل صورة مولد OpenAPI كقابلة للتنفيذ. يمكن استخدامه كبديل للتثبيت عبر Homebrew ، أو للمطورين الذين لا يستطيعون تثبيت Java أو ترقية الإصدار المثبت.
لإنشاء رمز باستخدام هذه الصورة ، ستحتاج إلى تركيب موقع محلي كمعول حجم.
مثال:
docker run --rm -v " ${PWD} :/local " openapitools/openapi-generator-cli generate
-i https://raw.githubusercontent.com/openapitools/openapi-generator/master/modules/openapi-generator/src/test/resources/3_0/petstore.yaml
-g go
-o /local/out/go
سيتم تحديد الكود الذي تم إنشاؤه تحت ./out/go
في الدليل الحالي.
Openapi Generator على الإنترنت Docker Image
يمكن أن تعمل صورة OpenAPI-Generator-Online كتطبيق ويب مستضيف ذاتيًا وواجهة برمجة التطبيقات لإنشاء التعليمات البرمجية. يمكن دمج هذه الحاوية في خط أنابيب CI ، وتتطلب ما لا يقل عن طلبين من HTTP وبعض تزامن Docker للوصول إلى رمز تم إنشاؤه.
مثال الاستخدام:
# Start container at port 8888 and save the container id
> CID= $( docker run -d -p 8888:8080 openapitools/openapi-generator-online )
# allow for startup
> sleep 10
# Get the IP of the running container (optional)
GEN_IP= $( docker inspect --format ' {{.NetworkSettings.IPAddress}} ' $CID )
# Execute an HTTP request to generate a Ruby client
> curl -X POST --header ' Content-Type: application/json ' --header ' Accept: application/json '
-d ' {"openAPIUrl": "https://raw.githubusercontent.com/openapitools/openapi-generator/master/modules/openapi-generator/src/test/resources/3_0/petstore.yaml"} '
' http://localhost:8888/api/gen/clients/ruby '
{ " code " : " c2d483.3.4672-40e9-91df-b9ffd18d22b8 " , " link " : " http://localhost:8888/api/gen/download/c2d483.3.4672-40e9-91df-b9ffd18d22b8 " }
# Download the generated zip file
> wget http://localhost:8888/api/gen/download/c2d483.3.4672-40e9-91df-b9ffd18d22b8
# Unzip the file
> unzip c2d483.3.4672-40e9-91df-b9ffd18d22b8
# Shutdown the openapi generator image
> docker stop $CID && docker rm $CID
التنمية في دوكر
يمكنك استخدام run-in-docker.sh
للقيام بكل التطوير. يقوم هذا البرنامج النصي بتخطيط مستودعك المحلي إلى /gen
في حاوية Docker. كما أنه يقوم بتعيين ~/.m2/repository
إلى موقع الحاوية المناسب.
لتنفيذ mvn package
:
git clone https://github.com/openapitools/openapi-generator
cd openapi-generator
./run-in-docker.sh mvn package
يمكن الآن الوصول إلى القطع الأثرية في دليل العمل الخاص بك.
بمجرد بناء ، ستعمل run-in-docker.sh
على أنه قابل للتنفيذ لـ OpenAPI-Clireator-Cli. لإنشاء رمز ، ستحتاج إلى الإخراج إلى دليل تحت /gen
(على سبيل المثال /gen/out
). على سبيل المثال:
./run-in-docker.sh help # Executes 'help' command for openapi-generator-cli
./run-in-docker.sh list # Executes 'list' command for openapi-generator-cli
./run-in-docker.sh generate -i modules/openapi-generator/src/test/resources/3_0/petstore.yaml
-g go -o /gen/out/go-petstore -p packageName=petstore # generates go client, outputs locally to ./out/go-petstore
استكشاف الأخطاء وإصلاحها
في حالة حدوث خطأ كهذا ، ما عليك سوى تنفيذ أمر تثبيت Clean ./MVNW Clean -U :
org.apache.maven.lifecycle.lifecycleexecutionexception: فشل في تنفيذ الهدف org.apache.maven.plugins: maven-surefire-plugin: 2.19.1: اختبار (اختبار الافتراضي) على المولد المفتوح للمشروع: نوع من التوافق الذي حدث أثناء التنفيذ أثناء التنفيذ org.apache.maven.plugins: Maven-Surefire-Plugin: 2.19.1: الاختبار: java.lang.exceptionInitializerError
./run-in-docker.sh ./mvnw clean install -U
فشل تنفيذ الهدف org.fortasoft: Gradle-Maven-Plugin: 1.0.8: استدعاء (افتراضي) على مشروع Openapi-generator-plugin-plugin-mvn-wrapper: org.gradle.tooling.buildException: التوزيع 'https://services.gradle.org/distributions/gradle-4.7-bin.zip'
الآن: لا يوجد حل لهذا واحد: |
قم بتشغيل Docker في Vagrant
المتطلب السابق: تثبيت Vagrant و VirtualBox.
git clone https://github.com/openapitools/openapi-generator.git
cd openapi-generator
vagrant up
vagrant ssh
cd /vagrant
./run-in-docker.sh ./mvnw package
1.7 - NPM
هناك أيضًا غلاف حزمة NPM متوفر لمنصات مختلفة (على سبيل المثال Linux ، Mac ، Windows). (لا يزال هناك حاجة إلى JVM) يرجى الاطلاع على ReadMe للمشروع لمزيد من المعلومات.
قم بتثبيته على مستوى العالم للحصول على CLI على سطر الأوامر:
npm install @openapitools/openapi-generator-cli -g
openapi-generator-cli version
لاستخدام نسخة محددة من "Openapi-Generator-Cli"
openapi-generator-cli version-manager set 7.10.0
أو تثبيته على أنه الاعتماد على:
npm install @openapitools/openapi-generator-cli -D
يمكنك استخدام الجرار المدمجة محليًا أو إصدارات SNAPSHOT
أيضًا.
2 - بدأت
لإنشاء عميل PHP لـ petstore.yaml ، يرجى تشغيل ما يلي
git clone https://github.com/openapitools/openapi-generator
cd openapi-generator
./mvnw clean package
java -jar modules/openapi-generator-cli/target/openapi-generator-cli.jar generate
-i https://raw.githubusercontent.com/openapitools/openapi-generator/master/modules/openapi-generator/src/test/resources/3_0/petstore.yaml
-g php
-o /var/tmp/php_api_client
(إذا كنت على Windows ، استبدل الأمر الأخير java -jar modulesopenapi-generator-clitargetopenapi-generator-cli.jar generate -i https://raw.githubusercontent.com/openapitools/openapi-generator/master/modules/openapi-generator/src/test/resources/3_0/petstore.yaml -g php -oc:tempphp_api_client
)
يمكنك أيضًا تنزيل الجرة (أحدث إصدار) مباشرة من maven.org
للحصول على قائمة بالخيارات العامة المتاحة ، يرجى تشغيل java -jar modules/openapi-generator-cli/target/openapi-generator-cli.jar help generate
للحصول على قائمة بالخيارات المحددة لـ PHP (والتي يمكن تمريرها إلى المولد مع ملف تكوين عبر خيار -c
) ، يرجى تشغيل java -jar modules/openapi-generator-cli/target/openapi-generator-cli.jar config-help -g php
3 - الاستخدام
لإنشاء عينة من مكتبة عميل
يمكنك بناء عميل ضد API petstore على النحو التالي:
./bin/generate-samples.sh ./bin/configs/java-okhttp-gson.yaml
(على Windows ، يرجى تثبيت Git Bash لـ Windows لتشغيل الأمر أعلاه)
يستخدم هذا البرنامج النصي المكتبة الافتراضية ، وهي okhttp-gson
. سيتم تشغيل المولد مع هذا الأمر:
java -jar modules/openapi-generator-cli/target/openapi-generator-cli.jar generate
-i https://raw.githubusercontent.com/openapitools/openapi-generator/master/modules/openapi-generator/src/test/resources/3_0/petstore.yaml
-g java
-t modules/openapi-generator/src/main/resources/Java
--additional-properties artifactId=petstore-okhttp-gson,hideGenerationTimestamp=true
-o samples/client/petstore/java/okhttp-gson
مع عدد من الخيارات. تم توثيق خيارات Java هنا.
يمكنك أيضًا الحصول على الخيارات باستخدام أمر help generate
(أدناه يظهر فقط نتائج جزئية):
NAME
openapi-generator-cli generate - Generate code with the specified
generator.
SYNOPSIS
openapi-generator-cli generate
[(-a <authorization> | --auth <authorization>)]
[--api-name-suffix <api name suffix>] [--api-package <api package>]
[--artifact-id <artifact id>] [--artifact-version <artifact version>]
[(-c <configuration file> | --config <configuration file>)] [--dry-run]
[(-e <templating engine> | --engine <templating engine>)]
[--enable-post-process-file]
[(-g <generator name> | --generator-name <generator name>)]
[--generate-alias-as-model] [--git-host <git host>]
[--git-repo-id <git repo id>] [--git-user-id <git user id>]
[--global-property <global properties>...] [--group-id <group id>]
[--http-user-agent <http user agent>]
[(-i <spec file> | --input-spec <spec file>)]
[--ignore-file-override <ignore file override location>]
[--import-mappings <import mappings>...]
[--instantiation-types <instantiation types>...]
[--invoker-package <invoker package>]
[--language-specific-primitives <language specific primitives>...]
[--legacy-discriminator-behavior] [--library <library>]
[--log-to-stderr] [--minimal-update]
[--model-name-prefix <model name prefix>]
[--model-name-suffix <model name suffix>]
[--model-package <model package>]
[(-o <output directory> | --output <output directory>)] [(-p <additional properties> | --additional-properties <additional properties>)...]
[--package-name <package name>] [--release-note <release note>]
[--remove-operation-id-prefix]
[--reserved-words-mappings <reserved word mappings>...]
[(-s | --skip-overwrite)] [--server-variables <server variables>...]
[--skip-validate-spec] [--strict-spec <true/false strict behavior>]
[(-t <template directory> | --template-dir <template directory>)]
[--type-mappings <type mappings>...] [(-v | --verbose)]
OPTIONS
-a <authorization>, --auth <authorization>
adds authorization headers when fetching the OpenAPI definitions
remotely. Pass in a URL-encoded string of name:header with a comma
separating multiple values
...... (results omitted)
-v, --verbose
verbose mode
يمكنك بعد ذلك تجميع وتشغيل العميل ، وكذلك اختبارات الوحدة ضدها:
cd samples/client/petstore/java/okhttp-gson
mvn package
المولدات الأخرى لديها عينات أيضا.
3.1 - التخصيص
يرجى الرجوع إلى تخصيص. md حول كيفية تخصيص الإخراج (على سبيل المثال اسم الحزمة ، الإصدار)
3.2 - تكامل سير العمل (Maven ، Gradle ، Github ، CI/CD)
يرجى الرجوع إلى integration.md حول كيفية دمج مولد OpenAPI مع Maven و Gradle و SBT و Bazel و Github و CI/CD.
3.3 - مولد Openapi عبر الإنترنت
فيما يلي الخدمات العامة عبر الإنترنت:
- أحدث إصدار مستقر: https://api.openapi-generator.tech
- أحدث ماجستير: https://api-latest-master.openapi-generator.tech (تم تحديثه بأحدث ماجستير كل ساعة)
يتم رعاية الخادم بواسطة Linode
(هذه الخدمات هي تجريبية وليس لديها أي ضمان على مستوى الخدمة)
يرجى الرجوع إلى Online.md حول كيفية تشغيل واستخدام openapi-generator-online
خدمة ويب لـ openapi-generator
.
3.4 - معلومات الترخيص على الرمز الذي تم إنشاؤه
يهدف مشروع OpenAPI Generator كميزة لمستخدمي مواصفات API المفتوحة. المشروع نفسه لديه الترخيص كما هو محدد. بالإضافة إلى ذلك ، يرجى فهم النقاط التالية:
- تخضع القوالب المضمنة في هذا المشروع للترخيص.
- لا يخضع الرمز الذي تم إنشاؤه عن عمد لترخيص المشروع الأصل
عندما يتم إنشاء التعليمات البرمجية من هذا المشروع ، يجب اعتباره يملكه مستخدم البرنامج. لا توجد ضمانات-معبرة أو ضمنية-رمز تم إنشاؤه. يمكنك أن تفعل ما تتمناه به ، وبمجرد إنشاءه ، فإن الكود هو مسؤوليتك وتخضع لشروط الترخيص التي تراها مناسبة.
3.5 - تكامل IDE
فيما يلي قائمة بالمكونات الإضافية IDE التي يتم توزيعها على المجتمع والتي تتكامل مع مولد OpenAPI:
- Eclipse: أدوات Codewind Openapi لـ Eclipse بواسطة IBM
- Idea Intellij: مولد Openapi بواسطة Jim Schubert
- Intellij Idea: Senya Editor by Senya.io
- Reprezen API Studio
- Visual Studio: REST API Client Code Generator by Christian Resma Helle
- رمز Visual Studio: أدوات Codewind Openapi بواسطة IBM
4 - شركات/مشاريع باستخدام مولد OpenAPI
فيما يلي بعض الشركات/المشاريع (الترتيب الأبجدي) باستخدام مولد OpenAPI في الإنتاج. لإضافة شركتك/مشروعك إلى القائمة ، يرجى زيارة readMe.md والنقر على الرمز لتحرير الصفحة.
- جامعة آلبورغ
- تصرف الترميز
- Adaptant Solutions AG
- أديسو سي
- أدين
- أجودا
- Airthings
- Aleri Solutions GmbH
- أليانز
- Angular.Schule
- عقيوفيا
- مجموعة أستراليا ونيوزيلندا المصرفية (ANZ)
- أردوينو
- اسأل
- Amazon Web Services (AWS)
- ب <> com
- 百度营销
- النطاق الترددي
- بانزاي سحابة
- bimdata.io
- Bithost GmbH
- صناعة بوش المتصلة
- صندوق
- بريف
- مجموعة القابضة
- جامعة ولاية كاليفورنيا ، نورثريدج
- كام
- camptocamp
- مجموعة كارلسبرغ
- سيرن
- كريستوفر كوين الاستشاري
- سيسكو
- الترميز AG
- Coinapi
- بدء
- configcat
- كرون GmbH
- كروس الصحة
- قبعة
- datadog
- ديسيبل systel
- deeporute.ai
- devsupply
- DMTech GmbH
- مستندات
- دوانغو
- حافة الدافع
- العنصر الذكاء الاصطناعي
- الجنينات
- إيمينيو
- بسرعة
- fenergo
- Freee
- طازجة
- فتيل
- جانتنر
- Genflow
- getyourguide
- قفازات
- الكائنات المعدلة وراثيا بيبابو
- غوددا
- جومتري
- هنا
- IBM
- Instana
- interxion
- محاكم التفتيش
- JustStar
- K6.io
- كلارنا
- Kronsoft Development
- Kubernetes
- Landeshauptstadt München - It@M
- Linode
- LogicDrop
- لومريس
- LVM Versicherungen
- mailslurp
- البحث Manticore
- ماستر كارد
- médiavision
- metaswitch
- Moonvision
- myworkout
- نامسور
- Neverfail
- Neuerenergy
- نوكيا
- OnesInsignal
- خيارات Clearing Corporation (OCC)
- Openet
- OpenValidation
- أوراكل
- باكسوس
- منقوشة
- Plaid ، Inc.
- بينتيريست
- البونيات
- PriceFX
- printnanny
- بروميثيوس/تنبيه
- Qavar
- qedit
- qovery
- نظم qulix
- راكسول
- Raiffeisen Schweiz Genossenschaft
- ريدهات
- Reprezen API Studio
- الباقي يونايتد
- robocorp
- robotinfra
- Searchapi
- smarthr
- سوني الترفيه التفاعلية
- Splitit
- Stingray
- SUVA
- Svix
- تلسترا
- تينسنت
- جامعة أيزو
- Tinqin
- APs شفافة
- منصة وقت السفر
- tribalscale
- ثلاثية
- TUI Infotec GMBH
- twilio
- تغريد
- Unblu Inc.
- بصوت عال
- VMware
- WBT Solutions
- ووليت
- WSO2
- pouchery.io
- Xero
- ياهو اليابان
- viadee
- vonage
- تقنية Yitu
- عواء
- زالاندو
- 3DS خارج
5 - العروض التقديمية/مقاطع الفيديو/البرامج التعليمية/الكتب
- 2018/05/12 - مولد Openapi - مدفوع المجتمع で成長するコードジェネレータ بواسطة 中野暁人
- 2018/05/15 - بدء مشروع جديد مفتوح المصدر من قبل Jeremie Bresson
- 2018/05/15 - REST API 仕様から API クライアントやスタブサーバを自動生成する「 Openapi Generator 」オープンソースで公開。swagger codegen からのフォーク by publickey
- 2018/06/08 - Swagger Codegen هو الآن مولد Openapi بواسطة Johanneshoppe
- 2018/06/21 - قم بتوصيل تطبيقات JHipster الخاصة بك بعالم واجهات برمجة التطبيقات مع Openapi و GRPC من قبل كريستوف بورنيت في Jhipster Conf 2018
- 2018/06/22 - OpenAPI Generator で Gatling Client を生成してみた at ソモサン
- 2018/06/27 - الدروس المستفادة من قيادة مشروع مفتوح المصدر يدعم أكثر من 30 لغة برمجة - William Cheng في Linuxcon + Conterercon + Cloudopen China 2018
- 2018/07/19 - مساهمة مولد Openapi QuickStart - RingCentral Go SDK بواسطة John Wang
- 2018/08/22 - مولد Openapi のプロジェクト構成などのメモ بواسطة Yusuke Iinuma
- 2018/09/12 - Reprezen و Openapi 3.0: الآن هو الوقت الذي ألقاه الأميال Daffin
- 2018/10/31 - غلاف حزمة العقدة لمولد Openapi
- 2018/11/03 - Openapi Generator + Golang + Flutter でアプリ開発 by Ryuichi Daigo
- 2018/11/15 - 基于 OpenAPI3.0 的 Yaml 文件生成 Java 代码的一次实践 by 焱魔王
- 2018/11/18 - توليد رمز مكتبة PHP من Openapi بواسطة Lorna Jane في مدونة Lornajane
- 2018/11/19 - Openapis في كل مكان من قبل Jeremie Bresson (UNBLU) في Eclipsecon Europe 2018
- 2018/12/09 - Openapi -Generator をカスタマイズする方法 bywatiko
- 2019/01/03 - استدعاء خدمة Swagger من Apex باستخدام Openapi -Generator بواسطة Mikkel Flindt Heisterberg
- 2019/01/13 - مولد Openapi で API Restful の定義書から色々自動生成する بواسطة @ky_yk_d
- 2019/01/20 - تطوير واجهة برمجة تطبيقات العقد مع مولد OpenAPI و Connexion بواسطة Anil Can Aydin
- 2019/01/30 - تطوير التطبيق السريع مع النهج الأول API باستخدام مولد Open -API بواسطة Milan Sonkar
- 2019/02/02 - 平静を保ち、コードを生成せよ 〜 Openapi Generator 誕生の背景と軌跡 〜 by 中野暁人 at at gunma.web #34 スキーマ駆動開発
- 2019/02/20 - مغامرة في Generation Openapi V3 Code بواسطة Phil Cluff
- 2019/02/26 - بناء خدمات API: دليل المبتدئين من قبل Ratros Y. في مدونة منصة Google Cloud
- 2019/02/26 - بناء واجهات برمجة التطبيقات مع Openapi: تابع بواسطة Ratros Y. في مدونة منصة Google Cloud
- 2019-03-07-Openapi Generator で spring boot と Angular をタイプセーフに繋ぐ by tomofumi chiba
- 2019-03-16-مقدمة سريعة لـ Manual Openapi V3 بواسطة Vados في Vadosware
- 2019-03-25-الوصول إلى أي خدمة راحة مع SAP S/4HANA Cloud SDK بواسطة Alexander Duemont
- 2019-03-25-Openapi Generator を試してみる by amuyikam
- 2019-03-27-OpenAPI3 を使ってみよう! Go 言語でクライアントとスタブの自動生成まで! by gold_kou
- 2019-04-17-Openapi によるスキーマファースト開発の実施サンプルと Cloud Run について by @yukey1031
- 2019-04-18-كيفية استخدام OpenAPI3 لمطور API (Rubykaigi 2019) بواسطة @OTA42Y في Rubykaigi 2019
- 2019-04-29-دليل المبتدئين لتوليد الكود لـ REST APIs (OpenAPI Generator) من تأليف William Cheng
- 2019-05-01-تصميم وتوليد واجهة برمجة تطبيقات REST من Swagger / Openapi في Java ، Python ، C# وأكثر من ذلك ببساطة كيف
- 2019-05-17-قم بإنشاء واجهة برمجة تطبيقات REST REST باستخدام Swagger/Openapi بواسطة Antonie Zafirov
- 2019-05-22-REST APIS 代码生成指南 (OpenAPI Generator) بقلم وليام تشنغ ، شين منغ
- 2019-05-24-REST API 代碼生成指南 (OpenAPI Generator) بقلم وليام تشنغ
- 2019-06-24-عملاء Kubernetes ومولد Openapi من قبل William Cheng في Kubernetes مساهمات Summs Shanghai 2019
- 2019-06-28 أدوات Codewind Openapi في Eclipse Marketplace بواسطة IBM
- 2019-06-29 أدوات Codewind Openapi في Marketplace Visual Studio by IBM
- 2019-07-04-REST API のためのコード生成入門 (OpenAPI Generator) by William Cheng ، 中野暁人 ، 和田拓朗
- 2019-07-08 - Openapi Generator にコントリビュートしたら社名が載った話。 (CAM) - CAM Tech Blog by Cam ، Inc.
- 2019-07-14-Openapi Generator で Python のクライアントライブラリを作成した by yuji38kwmt
- 2019-07-19-تجربة المطورين (DX) للمشاريع المفتوحة المصدر: كيفية إشراك المطورين وبناء مجتمع مطور متنامي من وليام تشنغ ، 中野暁人 في Open Source Summit Japan 2019
- 2019-08-14-رحلة Openapi الخاصة بنا مع توحيد SDKs من قبل Sebastian Burgstaller في Bitmovin
- 2019-08-15-API のコードを自動生成させたいだけなら GRPC でなくてもよくない؟ بواسطة M3 ، Inc.
- 2019-08-22-マイクロサービスにおける Web API スキーマの管理 スキーマの管理 graphql 、 grpc 、 openapi の特徴と使いどころ by @ota42y
- 2019-08-24-Swagger ドキュメントから Openapi Generator を使ってモックサーバー作成 by 坂本正義
- 2019-08-29-Openapi 初探 بواسطة Peakxie في 腾讯云社区
- 2019-08-29-: : Kubernetes CRD 1.16 GA 前瞻 بواسطة Min Kim في مدونة Servicemesher
- 2019-09-01-إنشاء خادم php-slim باستخدام OpenAPI (فيديو YouTube) بواسطة Daniel Persson
- 2019-09-06-Vert.x و Openapi بقلم Stephan H Wissel في مدونة Wissel.net
- 2019-09-09-التطوير السحابي الأصلي-إنشاء خدمات microservices مريحة في مستندات IBM Cloud
- 2019-09-14-توليد وتكوين عميل MasterCard API في منصة MasterCard Developers
- 2019-09-15-Openapi (Swagger) 導入下調べ بواسطة Shoichi Kuraoka
- 2019-09-17-البرنامج التعليمي: توثيق واجهات برمجة التطبيقات HTTP4K مع OpenAPI3 بواسطة HTTP4K
- 2019-09-22-Openapi 3 を完全に理解できる本 by @ota42y
- 2019-09-22-واجهات برمجة التطبيقات المريحة: برنامج تعليمي لمواصفات OpenAPI بواسطة أمير لافاساني
- 2019-09-22-إعادة تعريف SDKs كمجموعات تنوع البرمجيات من قبل Sid Maestre (Xero) في Devrelcon San Francisco 2019
- 2019-09-23-Swagger から Openapi Generator で Spring のコードを自動生成 by Littlefeet في Qiita
- 2019-09-24-كان Eine Stunde معهد ماساتشوستس للتكنولوجيا API أولاً! بقلم @Janweinschenker في Java Forum Nord
- 2019-10-09-مولد Openapi で生成した Go クライアントで Bearer 認証をする by Akira Tanimura
- 2019-10-10-الجيل التلقائي من عملاء REST من قبل Thomas Peyrard ، كبير مهندسي البرمجيات في Criteo في محادثات التكنولوجيا الكاملة (Meetup)
- 2019-10-12-Openapi 自动生成 العميل بواسطة 郑泽洲
- 2019-10-16-كيفية شحن واجهات برمجة التطبيقات بشكل أسرع؟ بقلم سيمون غيليامز @ ponicode
- 2019-10-22-Openapi + Spring Boot (Kotlin) でファイルダウンロード API を作成する by Yuki Furukawa
- 2019-10-24 - microprofile openapi - رمز أولا أو التصميم أولاً؟ بقلم بيتر [pɛʃə] شتاينر في Eclipsecon Europe 2019
- 2019-11-06-توليد عملاء API استنادًا إلى مواصفات OpenAPI V3 بواسطة Dominik Jastrzębski @ 98elements
- 2019-11-06-Openapi を利用して自前の API サーバー (Sinatra) を移植した時のメモ بواسطة Yasuhiro Abe
- 2019-11-07 - تطوير واجهة برمجة التطبيقات الأولى مع Openapi - يجب أن تمارسه!؟ بقلم نيك فان هوف في ديفوكس بلجيكا 2019
- 2019-11-08-Jhipster Beyond Crud-API-First للمؤسسات من Enrico Costanzi بواسطة Enrico Costanzi في Jhipster Conf 2019 في باريس
- 2019-11-11-TypeScript Rest API クライアント بواسطة unhurried
- 2019-11-11 - مواصفات واحدة لحكمهم جميعًا - Openapi في العمل من قبل Andreas Litt في Code.Talks 2019
- 2019-11-13-محرر ومولد Openapi 3.0 مع مثال على الحذاء الربيعي في ببساطة
- 2019-11-17-قائمة تشغيل Openapi Generator YouTube في YouTube
- 2019-11-20-مقدمة إلى Openapi من Lorna Mitchell في Goto Copenhagen 2019
- 2019-11-20-كيفية إنشاء الكود الزاوي من مواصفات OpenAPI بواسطة Anuraj
- 2019-11-23-Swagger ではない Openapi Specification 3.0 による API サーバー開発 بواسطة Tetsuya Morimoto في JJug CCC 2019 Fall
- 2019-11-24-تسريع تطور الرفرفة مع Openapi و DART Code Generation by Irina Southwell
- 2019-11-25-Openapi-Generator で手軽にスタブサーバとクライアントの生成 by @pochopocho13
- 2019-11-26-Cordacon 2019 أبرز: خادم جديلة ومولد OpenAPI لـ Corda Client API's من Adel Rustum في B9Lab
- 2019-12-03-طريق إلى ترميز أقل: Apilibrary التلقائي في مدونة Corda
- 2019-12-04-Angular + nestjs + Openapi (Swagger) でマイクロサービスを視野に入れた環境を考える by てらしー
- 2019-12-05-توليد الكود على Java VM بقلم شون سوليفان
- 2019-12-17-Openapi Generator で Oauth2 アクセストークン発行のコードまで生成してみる بواسطة TechScore
- 2019-12-23-استخدم ADA لتطوير الويب الخاص بك من قبل ستيفان كارز
- 2019-12-23-Openapi のスキーマを分割・構造化していく方法 by 小飯塚達也 at Gift ، Inc
- 2020-01-17-عرض Openapi لـ Pulp 3.0 GA بواسطة اللب في YouTube
- 2020-01-19-لماذا توثيق واجهة برمجة تطبيقات REST كرمز؟ بقلم رولف ستريفكر في مجتمع ديف
- 2020-01-28-احصل على تبخير الخادم الخاص بك مع OpenAPI بواسطة Matt Tyler
- 2020-01-30-مولد Openapi へのコントリビュート بواسطة Yutaka0m
- 2020-02-01-باستخدام OpenAPI لزيادة تجربة اللب 3 من قبل Dennis Kliban في Fosdem
- 2020-02-07-لماذا يجب عليك استخدام Openapi لتصميم API الخاص بك من قبل Nick Van Hoof في API Conference
- 2020-02-17-Rubynetes: باستخدام OpenAPI للتحقق من صحة تكوينات Kubernetes بواسطة Neil Wilson في Brightbox
- 2020-02-20-بناء SDKs للمستقبل بواسطة Sid Maestre (Xero)
- 2020-02-27-NUXT 利用プロダクトで IE11 と仲良くするための E2E في مدونة Medpeer.co.jp Tech مدونة
- 2020-02-29-تقديم الدعم لأجهزة إنترنت الأشياء المنتشرة في البيئة الريفية المنفصلة (ورقة المؤتمر) من قبل سيرجيو لاسو ، ودانييل فلوريس مارتين ، وخوان لويس هيريرارلوس ، وكانالجوان مانويل ، وموريلوجافييه بيروكال
- 2020-03-02-كيفية إنشاء رمز الزاوي والربيع من مواصفات Openapi بواسطة Michael Hoffmann
- 2020-03-02-OpenAPI Generator + TypeScript で始める自動生成の型に守られた豊かなクライアント生活 by 五百蔵 直樹 直樹 直樹 直樹 株式会社 株式会社
- 2020-03-10-Meetup Generator Openapi رقم 1 بواسطة 中野暁人 في Openapi Generator Meetup #1
- 2020-03-15-اختبار تحميل واجهة برمجة التطبيقات الخاصة بك مع Swagger/Openapi و K6
- 2020-04-13-俺的【 OAS 】との向き合い方 (爆速で Openapi と友達になろう) في مدونة Optim
- 2020-04-22-مقدمة لمولد Openapi بواسطة Kristopher Sandoval في واجهات برمجة التطبيقات الشمال
- 2020-04-27-كيف نستخدم مواصفات API V3 المفتوحة لتوثيق واجهة برمجة تطبيقات وثيقة تلقائية ، و Snippets و Code Tanel Tähepõld
- 2020-05-09-Openapi でお手軽にモック API サーバーを動かす بواسطة Sachie Kamba
- 2020-05-18-راحة الحذاء الربيع مع Openapi 3 من Alfonz Jan Frithz
- 2020-05-19-واجهات برمجة التطبيقات البسيطة الميتة مع واجهة برمجة التطبيقات المفتوحة من كريس تانكرسلي في Nexmo
- 2020-05-22-عميل TypeScript Rest API بواسطة "غير مستحضر"
- 2020-05-28 - 【使用 lotify + swagger 建置可 用的 用的 用的 用的 用的 用的 用的
- 2020-05-28-بناء واجهات برمجة التطبيقات مع Laravel باستخدام Openapi بواسطة Chris Tankersley في Laracon EU
- 2020-06-12-قابلية التشغيل البيني حسب البناء: توليد رمز لعملاء Arrowhead من قبل ميشيل ألبانو ، براين نيلسن في مؤتمر 2020 IEEE حول النظم السيبرانية الصناعية (ICPS)
- 2020-06-23-新規サーバーアプリケーションに TypeScript を採用してみた في مدونة Cam Tech
- 2020-06-29-Artifact Abstract: نشر واجهات برمجة التطبيقات على أجهزة Android المحمولة وموكان Microcontrollers بواسطة Sergio Laso ؛ مارينو لينجي ؛ خوسيه جارسيا ألونسو ؛ خوان م. موريلو ؛ Javier Berrocal في عام 2020 مؤتمر IEEE الدولي للحوسبة والاتصالات المنتشرة (PERCOM)
- 2020-07-07-5 أفضل أدوات توثيق واجهة برمجة تطبيقات من قبل سوزانا بوز في مدونة DreamFactory
- 2020-07-12-Open API 3.0 の定義から Golang のサーバコードのスケルトンを作成する by Professor (Qiita Blog)
- 2020-07-20-مكتبات عميل DataDog API متاحة الآن لجافا وتذهب بواسطة Jordan Obey في مدونة DataDog
- 2020-07-23-إنشاء العميل SDK لـ .NET Core باستخدام API Open by Nuno Reis
- 2020-07-26-DART の http_interceptor ライブラリを使うと配列のクエリパラメータが消えてしまう件の応急処置 bygyamoto
- 2020-08-01-قم بإنشاء أشكال تفاعلية زاوية من Swagger/Openapi بواسطة Martin McWhorter
- 2020-08-03-Criando Bibliotecas Para Apis Restfl Com Openapi ، Swagger Editor E Openapi Generator بواسطة Everis Brasil (A NTT Data Company)
- 2020-08-19-マイクロサービスを連携してみよう بواسطة 岡井 裕矢 (おかい ゆうや) ، 泉 勝 (いずみ まさる) في التفكير ((シンクイット
- 2020-08-25-مولد Openapi と typeScript で型安全にフロントエンド開発をしている話 في مدونة Smarthr Tech
- 2020-09-10-مقدمة إلى Openapi مع Instana بواسطة Cedric Ziel في Instana Blog
- 2020-09-17-توليد PowerShellsdk باستخدام Openapi-Cenerator بواسطة Ghufran Zahidi
- 2020-09-24 - كيفية أتمتة توليد رمز API (OpenAPI/Swagger) وتعزيز الإنتاجية - البرنامج التعليمي مع React Native يضم TypeScript بواسطة Sanjin Celeski
- 2020-09-25-قم بإنشاء عميل Openapi Angular بواسطة Patric
- 2020-10-24 - العمل مع Microsoft Identity - React Native Client by Joseph Guadagno
- 2020-10-31-[B2] مواصفات Openapi 으로 타입-세이프하게 API 개발하기: 희망편 vs 절망편 최태건 at at feconf 2020
- 2020-11-05-توليد رمز REST-API الآلي: WIE IT-Systeme Miteinander Sprechen بقلم ستيفان Rottensteiner في مدونة فنية ضخمة
- 2020-12-01-مولد Openapi で Go の API サーバー/クライアントコードを自動生成する بواسطة @saki-engineering
- 2020-12-04-توسيع نطاق تغطية اختبار مولد OpenAPI لـ 30+ لغة برمجة من William Cheng في Open Source Summit Japan + Automotive Linux Summit 2020 (Slides)
- 2020-12-09-プロジェクトに Openapi Generator で自動生成された型付き API Client を導入した話 by yoshifujit
- 2020-12-15-next.js + nestjs + graphql で変化に追従するフロントエンドへ 〜 ショッピングクーポンの事例紹介 ショッピングクーポンの事例紹介 小倉 陸 陸 at yahoo! مدونة التقنية اليابانية
- 2021-01-08-مرحبًا ، واجهة برمجة تطبيقات جديدة-الجزء الأول من جيريمي شولمان في لعبة البيسبول الرئيسية
- 2021-01-18-「アプリ開発あるある」を疑うことから始まった、 عميل API コードの自動生成【デブスト 2020】 بواسطة Codezine 編集部
- 2021-02-05-REST-API-ROUNDTRIP مع SPRINGDOC ومولد Openapi بواسطة Benjamin Klatt في Viadee
- 2021-02-17-REST-API-ROUNDTRIP مع SPRINGDOC ومولد OpenAPI بواسطة CloudViAdee
- 2021-03-08-مولد Openapi 工具的躺坑尝试 بواسطة 独家雨天 في CSDN 官方博客
- 2021-03-16-如何基于 Swagger 使用 Openapi Generator 生成 Jmeter 脚本? by 高楼 zee at 腾讯云专栏
- 2021-03-24-Openapi-Generator-Cli による TypeScript 型定義 by takefumi yoshii
- 2021-03-28-تجربة NESTJS الجزء 4: إنشاء عملاء TypeScript من مستندات OpenAPI بواسطة Arnaud Cortisse
- 2021-03-31-فتح تطبيق خادم API باستخدام مولد OpenAPI في Baeldung
- 2021-03-31-使用 Openapi Generator 實現 Open API Server على 億聚網
- 2021-04-19-تقديم تجريبي لمواصفات Openapi من Twilio من تأليف Gareth Paul Jones في Twilio Blog
- 2021-04-22-الاستفادة من نقاط قوة Openapi في بيئة الخدمة الصغيرة من قبل Nicolas Jellab في مدونة Unibuddy Technology
- 2021-04-27-من صفر إلى عملاء PowerShell API في معرض PowerShell في غضون دقائق من قبل William Cheng في PowerShell + Devops Global Summit 2021
- 2021-05-31-Flutter で API Generator (Swagger) を使う بواسطة Aakira
- 2021-06-22-وثائق API REST وتوليد العميل مع OpenAPI من Prasanth Gullapalli
- 2021-07-16 - 銀行事業のサーバーサイド開発について / LINE 京都開発室 エンジニア採用説明会 by 野田誠人, Robert Mitchell
- 2021-07-19 - OpenAPI code generation with kotlin by sylhare
- 2021-07-29 - How To Rewrite a Huge Codebase by Curtis Poe
- 2021-08-21 - Generating Client APIs using Swagger Part 1 by FlowSquad.io
- 2021-09-11 - Invoking AWS ParallelCluster API at AWS ParallelCluster API official documentation
- 2021-09-20 - OpenAPI Generator - The Babel Fish of the API World by Cliffano Subagio (Principal Engineer at Shine Solutions) at Apidays LIVE Australia 2021
- 2021-10-02 - How to Write Fewer Lines of Code with the OpenAPI Generator by Mikhail Alfa
- 2021-10-12 - OpenAPI Generator : 4000 étoiles sur GitHub et des spaghettis by Jérémie Bresson at Devoxx FR 2021
- 2021-10-17 - Generate a TypeScript HTTP Client From An OpenAPI Spec In DotNET 5 by Richard Willis
- 2021-11-06 - スタートアップの開発で意識したこと by woo-noo
- 2021-11-09 - Effective Software Development using OpenAPI Generator by Ajil Oomme
- 2021-12-07 - An Introduction to OpenAPI by Na'aman Hirschfeld
- 2022-01-02 - Towards a secure API client generator for IoT devices by Anders Aaen Springborg, Martin Kaldahl Andersen, Kaare Holland Hattel, Michele Albano
- 2022-02-02 - Use OpenApi generator to share your models between Flutter and your backend by Guillaume Bernos at Flutter Vikings Conference 2022 (Hybrid)
- 2022-03-15 - OpenAPI Specでハイフン区切りのEnum値をOpenAPI Generatorで出力すると、ハイフン区切りのまま出力される by yuji38kwmt
- 2022-04-01 - OpenAPI Generatorのコード生成とSpring Frameworkのカスタムデータバインディングを共存させる in ZOZO Tech Blog
- 2022-04-06 - Effective Software Development using OpenAPI Generator by Ajil Oommen (Senior Flutter Developer)
- 2022-05-13 - A Path From an API To Client Libraries by Filip Srnec at Infobip
- 2022-06-01 - API First, using OpenAPI and Spring Boot by Micael Estrázulas Vianna
- 2022-06-10 - Autogenerating Clients with FastAPI and Github Actions by Andrew Israel
- 2022-06-12 - Mustache templates with OpenAPI specs by Beppe Catanese
- 2022-07-01 - Generate API contract using OpenAPI Generator Maven plugin by Khanh Nguyen
- 2022-07-22 - 使用OpenAPI Generator Maven plugin开发api优先的java客户端和服务端代码 by Lincest
- 2022-08-01 - Tutorial: Etsy Open API v3 (ruby) by Thierry Joyal
- 2022-09-03 - OpenAPI Generator For Go Web Development by Kevin Hu
- 2022-10-01 - OpenAPI Generatorをカスタマイズしたコードを生成する(Swagger Codegenとほぼ同じ) by きり丸
- 2022-10-21 - Kotlin(Spring Boot)の API を OpenAPI Generator で自動生成 by msksgm
- 2022-10-26 - Quarkus Insights #106: Quarkiverse Extension Spotlight: OpenApi Generator by Quarkusio
- 2022-11-28 - The REST API implementation flow by Imre Tömösvári
- 2022-12-13 - API-First with Spring WebFlux and OpenAPI Generator by Eric Anicet
- 2023-01-06 - Major Improvements with Helidon and OpenAPI by Tim Quinn
- 2023-02-02 - Replacing Postman with the Jetbrains HTTP Client by julien Lengrand-Lambert
- 2023-03-15 - OpenAPI Generatorに適したOpenAPIの書き方 by ZOZO Tech Blog
- 2023-03-19 - EXOGEM: Extending OpenAPI Generator for Monitoring of RESTful APIs by Daniel Friis Holtebo, Jannik Lucas Sommer, Magnus Mølgaard Lund, Alessandro Tibo, Junior Dongo & Michele Albano at "ICSOC 2022: Service-Oriented Computing – ICSOC 2022 Workshops "
- 2023-03-28 - API-First Design with OpenAPI Generator by Jonathan Manera
- 2023-03-28 - ハンズオンで学ぶサーバーサイド Kotlin(Spring Boot&Arrow&OpenAPI Generator)v1.0.1 by msk
- 2023-04-01 - OpenAPI Client Code Generation by Kwo Ding
- 2023-04-27 - [Create an Angular Client using OpenAPI Specifications](Create an Angular Client using OpenAPI Specifications) by Patric
- 2023-05-16 - Adyen for Java developers by Beppe Catanese, Developer Advocate, Adyen
- 2023-05-18 - 如何基于 Swagger 使用 OpenAPI Generator 生成 JMeter 脚本? by 高楼(Zee)
- 2023-06-28 - Generate API contract using OpenAPI Generator Maven plugin by Khanh Nguyen
- 2023-06-30 - Generate Client SDKs with OpenApi Generator in Springboot by Vinayak Ramavath
- 2023-12-10 - UnityでOpenAPI Generatorを使う by Soup Tori
- 2024-01-24 - Comment générer des stubs wiremock avec openapi generator by Alexis Couvreur
- 2024-03-04 - Generating TypeScript Types with OpenAPI for REST API Consumption by PullRequest
- 2024-03-07 - Fully typed Web Apps with OpenAPI (Part 1) by Guillaume Renard
- 2024-03-08 - Laravel OpenAPIによる "辛くない" スキーマ駆動開発 by KentarouTakeda
6 - About Us
What's the design philosophy or principle behind OpenAPI Generator?
We focus on developer experience. The generators should produce code, config, documentation, and more that are easily understandable and consumable by users. We focused on simple use cases to start with (bottom-up approach). Since then the project and the community have grown a lot: 600k weekly downloads via NPM CLI wrapper, 30M downloads via openapi-generator-cli docker image just to highlight a few. We've gradually supported more features (eg oneOf, anyOf introduced in OpenAPI 3.0) in various generators and we will continue this approach to deliver something based on our understanding of user demand and what they want, and continue to add support of new features introduced in OpenAPI specification (such as v3.1 and future versions of the OpenAPI specification).
6.1 - OpenAPI Generator Core Team
OpenAPI Generator core team members are contributors who have been making significant contributions (review issues, fix bugs, make enhancements, etc) to the project on a regular basis.
Core Team Members
- @wing328 (2015/07) ❤️
- @jimschubert (2016/05) ❤️
- @cbornet (2016/05)
- @jmini (2018/04) ❤️
- @etherealjoy (2019/06)
❤️ = Link to support the contributor directly
Template Creator
NOTE : Embedded templates are only supported in Mustache format. Support for all other formats is experimental and subject to change at any time.
Here is a list of template creators:
- API Clients:
- Ada: @stcarrez
- Apex: @asnelling
- Bash: @bkryza
- C: @PowerOfCreation @zhemant ❤️
- C++ REST: @Danielku15
- C++ Tiny: @AndersSpringborg @kaareHH @michelealbano @mkakbas
- C++ UE4: @Kahncode
- C# (.NET 2.0): @who
- C# (.NET Standard 1.3 ): @Gronsak
- C# (.NET 4.5 refactored): @jimschubert ❤️
- C# (GenericHost): @devhl-labs
- C# (HttpClient): @Blackclaws
- Clojure: @xhh
- Crystal: @wing328
- Dart: @yissachar
- Dart (refactor): @joernahrens
- Dart 2: @swipesight
- Dart (Jaguar): @jaumard
- Dart (Dio): @josh-burton
- Elixir: @niku
- Elm: @eriktim
- Eiffel: @jvelilla
- Erlang: @tsloughter
- Erlang (PropEr): @jfacorro @robertoaloi
- Groovy: @victorgit
- Go: @wing328 ❤️
- Go (rewritten in 2.3.0): @antihax
- Godot (GDScript): @Goutte ❤️
- Haskell (http-client): @jonschoning
- Java (Feign): @davidkiss
- Java (Retrofit): @0legg
- Java (Retrofit2): @emilianobonassi
- Java (Jersey2): @xhh
- Java (okhttp-gson): @xhh
- Java (RestTemplate): @nbruno
- Java (Spring 5 WebClient): @daonomic
- Java (Spring 6 RestClient): @nicklas2751
- Java (RESTEasy): @gayathrigs
- Java (Vertx): @lopesmcc
- Java (Google APIs Client Library): @charlescapps
- Java (Rest-assured): @viclovsky
- Java (Java 11 Native HTTP client): @bbdouglas
- Java (Apache HttpClient 5.x): @harrywhite4 @andrevegas
- Java (Helidon): @spericas @tjquinno @tvallin
- Javascript/NodeJS: @jfiala
- JavaScript (Apollo DataSource): @erithmetic
- JavaScript (Closure-annotated Angular) @achew22
- JavaScript (Flow types) @jaypea
- Jetbrains HTTP Client : @jlengrand
- JMeter: @davidkiss
- Julia: @tanmaykm
- Kotlin: @jimschubert ❤️
- Kotlin (MultiPlatform): @andrewemery
- Kotlin (Volley): @alisters
- Kotlin (jvm-spring-webclient): @stefankoppier
- Kotlin (jvm-spring-restclient): @stefankoppier
- Lua: @daurnimator
- N4JS: @mmews-n4
- Nim: @hokamoto
- OCaml: @cgensoul
- Perl: @wing328 ❤️
- PHP (Guzzle): @baartosz
- PHP (with Data Transfer): @Articus
- PowerShell: @beatcracker
- PowerShell (refactored in 5.0.0): @wing328
- Python: @spacether [:heart:][spacether sponsorship]
- Python-Experimental: @spacether [:heart:][spacether sponsorship]
- Python (refactored in 7.0.0): @wing328
- R: @ramnov
- Ruby (Faraday): @meganemura @dkliban
- Ruby (HTTPX): @honeyryderchuck
- Rust: @farcaller
- Rust (rust-server): @metaswitch
- Scala (scalaz & http4s): @tbrown1979
- Scala (Akka): @cchafer
- Scala (sttp): @chameleon82
- Scala (sttp4): @flsh86
- Scala (Pekko): @mickaelmagniez
- Scala (http4s): @JennyLeahy
- Swift: @tkqubo
- Swift 3: @hexelon
- Swift 4: @ehyche
- Swift 5: @4brunu
- Swift 6: @4brunu
- Swift Combine: @dydus0x14
- TypeScript (Angular1): @mhardorf
- TypeScript (Angular2): @roni-frantchi
- TypeScript (Angular6): @akehir
- TypeScript (Angular7): @topce
- TypeScript (Axios): @nicokoenig
- TypeScript (Fetch): @leonyu
- TypeScript (Inversify): @gualtierim
- TypeScript (jQuery): @bherila
- TypeScript (Nestjs): @vfrank66
- TypeScript (Node): @mhardorf
- TypeScript (Rxjs): @denyo
- TypeScript (redux-query): @petejohansonxo
- Xojo: @Topheee
- Zapier: @valmoz, @emajo
- Server Stubs
- Ada: @stcarrez
- C# ASP.NET 5: @jimschubert ❤️
- C# ASP.NET Core 3.0: @A-Joshi
- C# APS.NET Core 3.1: @phatcher
- C# Azure functions: @Abrhm7786
- C# NancyFX: @mstefaniuk
- C++ (Qt5 QHttpEngine): @etherealjoy
- C++ Pistache: @sebymiano
- C++ Restbed: @stkrwork
- Erlang Server: @galaxie @nelsonvides
- F# (Giraffe) Server: @nmfisher
- Go Server: @guohuang
- Go Server (refactored in 7.0.0): @lwj5
- Go (Echo) Server: @ph4r5h4d
- Go (Gin) Server: @kemokemo
- GraphQL Express Server: @renepardon
- Haskell Servant: @algas
- Haskell Yesod: @yotsuya
- Java Camel: @carnevalegiacomo
- Java MSF4J: @sanjeewa-malalgoda
- Java Spring Boot: @diyfr
- Java Undertow: @stevehu
- Java Play Framework: @JFCote
- Java PKMST: @anshu2185 @sanshuman @rkumar-pk @ninodpillai
- Java Vert.x: @lwlee2608
- Java Micronaut: @andriy-dmytruk
- Java Helidon: @spericas @tjquinno @tvallin
- Java WireMock: @acouvreur
- JAX-RS RestEasy: @chameleon82
- JAX-RS CXF: @hiveship
- JAX-RS CXF (CDI): @nickcmaynard
- JAX-RS RestEasy (JBoss EAP): @jfiala
- Julia: @tanmaykm
- Kotlin: @jimschubert ❤️
- Kotlin (Spring Boot): @dr4ke616
- Kotlin (Vertx): @Wooyme
- Kotlin (JAX-RS): @anttileppa
- Kotlin WireMock: @stefankoppier
- NodeJS Express: @YishTish
- PHP Flight: @daniel-sc
- PHP Laravel: @renepardon
- PHP Lumen: @abcsun
- PHP Mezzio (with Path Handler): @Articus
- PHP Slim: @jfastnacht
- PHP Slim4: @ybelenko
- PHP Symfony: @ksm2
- PHP Symfony6: @BenjaminHae
- Python FastAPI: @krjakbrjak
- Python AIOHTTP:
- Ruby on Rails 5: @zlx
- Rust (rust-server): @metaswitch
- Scala Akka: @Bouillie
- Scala Cask: @aaronp
- Scala Finch: @jimschubert ❤️
- Scala Lagom: @gmkumar2005
- Scala Play: @adigerber
- الوثائق
- AsciiDoc: @man-at-home
- HTML Doc 2: @jhitchcock
- Confluence Wiki: @jhitchcock
- PlantUML: @pburls
- إعدادات
- Apache2: @stkrwork
- k6: @mostafa
- مخطط
- Avro: @sgadouar
- GraphQL: @wing328 ❤️
- Ktorm: @Luiz-Monad
- MySQL: @ybelenko
- Postman Collection: @gcatanese
- Protocol Buffer: @wing328
- WSDL: @adessoDpd
❤️ = Link to support the contributor directly
How to join the core team
Here are the requirements to become a core team member:
- rank within top 50 in https://github.com/openapitools/openapi-generator/graphs/contributors
- to contribute, here are some good starting points
- regular contributions to the project
- about 3 hours per week
- for contribution, it can be addressing issues, reviewing PRs submitted by others, submitting PR to fix bugs or make enhancements, etc
- must be active in the past 3 months at the time of application
To join the core team, please reach out to [email protected] for more information.
To become a Template Creator, simply submit a PR for new API client (eg Rust, Elixir) or server stub (eg Ruby Grape) generator.
6.2 - OpenAPI Generator Technical Committee
Members of the OpenAPI Generator technical committee shoulder the following responsibilities:
- Provides guidance and direction to other users
- Reviews pull requests and issues
- Improves the generator by making enhancements, fixing bugs or updating documentations
- Sets the technical direction of the generator
Who is eligible? Those who want to join must have at least 3 PRs merged into a generator. (Exceptions can be granted to template creators or contributors who have made a lot of code changes with less than 3 merged PRs)
If you want to join the committee, please kindly apply by sending an email to [email protected] with your Github ID.
Members of Technical Committee
Languages/Generators | Member (join date) |
---|
ActionScript | |
أدا | @stcarrez (2018/02) @michelealbano (2018/02) |
Android | @jaz-ah (2017/09) |
قمة | |
سحق | @frol (2017/07) @bkryza (2017/08) @kenjones-cisco (2017/09) |
ج | @zhemant (2018/11) @ityuhui (2019/12) @michelealbano (2020/03) |
C ++ | @ravinikam (2017/07) @stkrwork (2017/07) @etherealjoy (2018/02) @martindelille (2018/03) @muttleyxd (2019/08) |
ج# | @mandrean (2017/08) @shibayan (2020/02) @Blackclaws (2021/03) @lucamazzanti (2021/05) @iBicha (2023/07) |
clojure | |
كريستال | @cyangle (2021/01) |
دارت | @jaumard (2018/09) @josh-burton (2019/12) @amondnet (2019/12) @sbu-WBT (2020/12) @kuhnroyal (2020/12) @agilob (2020/12) @ahmednfwela (2021/08) |
Eiffel | @jvelilla (2017/09) |
إكسير | @mrmstn (2018/12) |
الدردار | @eriktim (2018/09) |
إرلانج | @tsloughter (2017/11) @jfacorro (2018/10) @robertoaloi (2018/10) @nelsonvides (2024/09) |
و# | @nmfisher (2019/05) |
يذهب | @antihax (2017/11) @grokify (2018/07) @kemokemo (2018/09) @jirikuncar (2021/01) @ph4r5h4d (2021/04) @lwj5 (2023/04) |
GraphQl | @renepardon (2018/12) |
Groovy | |
هاسكل | |
جافا | @bbdouglas (2017/07) @sreeshas (2017/08) @jfiala (2017/08) @lukoyanov (2017/09) @cbornet (2017/09) @jeff9finger (2018/01) @karismann (2019/03) @Zomzog (2019/04) @lwlee2608 (2019/10) @martin-mfg (2023/08) |
Java Spring | @cachescrubber (2022/02) @welshm (2022/02) @MelleD (2022/02) @atextor (2022/02) @manedev79 (2022/02) @javisst (2022/02) @borsch (2022/02) @banlevente (2022/02) @Zomzog (2022/09) @martin-mfg (2023/08) |
JMeter | @kannkyo (2021/01) |
Jetbrains HTTP Client | @jlengrand (2023/01) |
جوليا | @tanmaykm (2023/01) |
كوتلين | @dr4ke616 (2018/08) @karismann (2019/03) @Zomzog (2019/04) @andrewemery (2019/10) @4brunu (2019/11) @yutaka0m (2020/03) @stefankoppier (2022/06) @e5l (2024/10) |
Lua | @daurnimator (2017/08) |
N4JS | @mmews-n4 (2023/03) |
نيم | |
NodeJS/Javascript | @CodeNinjai (2017/07) @frol (2017/07) @cliffano (2017/07) |
ObjC | |
Ocaml | @cgensoul (2019/08) |
بيرل | @wing328 (2017/07) ❤️ @yue9944882 (2019/06) |
PHP | @jebentier (2017/07), @dkarlovi (2017/07), @mandrean (2017/08), @jfastnacht (2017/09), @ybelenko (2018/07), @renepardon (2018/12) |
PowerShell | @wing328 (2020/05) |
بيثون | @cbornet (2017/09) @tomplus (2018/10) @krjakbrjak (2023/02) @fa0311 (2023/10) @multani (2023/10) |
ص | @Ramanth (2019/07) @saigiridhar21 (2019/07) |
روبي | @cliffano (2017/07) @zlx (2017/09) @autopp (2019/02) |
الصدأ | @frol (2017/07) @farcaller (2017/08) @richardwhiuk (2019/07) @paladinzh (2020/05) @jacob-pro (2022/10) |
سكالا | @clasnake (2017/07), @shijinkui (2018/01), @ramzimaalej (2018/03), @chameleon82 (2020/03), @Bouillie (2020/04) @fish86 (2023/06) |
سريع | @jgavris (2017/07) @ehyche (2017/08) @Edubits (2017/09) @jaz-ah (2017/09) @4brunu (2019/11) @dydus0x14 (2023/06) |
TypeScript | @TiFu (2017/07) @taxpon (2017/07) @sebastianhaas (2017/07) @kenisteward (2017/07) @Vrolijkx (2017/09) @macjohnny (2018/01) @topce (2018/10) @akehir (2019/07) @petejohansonxo (2019/11) @amakhrov (2020/02) @davidgamero (2022/03) @mkusaka (2022/04) @joscha (2024/10) |
Xojo | @Topheee (2023/04) |
Past Members of Technical Committee:
Languages/Generators | Member (join date) |
---|
بيثون | @taxpon (2017/07) @frol (2017/07) @mbohlool (2017/07) @cbornet (2017/09) @kenjones-cisco (2017/11) @tomplus (2018/10) @arun-nalla (2019/11) |
❤️ = Link to support the contributor directly
6.3 - History of OpenAPI Generator
OpenAPI Generator is a fork of Swagger Codegen. In view of the issues with the Swagger Codegen 3.0.0 (beta) release and the disagreement on the project's direction, more than 40 top contributors and template creators of Swagger Codegen decided to fork Swagger Codegen and maintain a community-driven version called "OpenAPI Generator". Please refer to the Q&A for more information.
Founding Members (alphabetical order):
- Akihito Nakano
- Artem Ocheredko
- Arthur Mogliev
- Bartek Kryza
- Ben Wells
- Benjamin Gill
- Christophe Bornet
- Cliffano Subagio
- Daiki Matsudate
- دانيال
- Emiliano Bonassi
- Erik Timmers
- Esteban Gehring
- Gustavo Paz
- Javier Velilla
- Jean-François Côté
- Jim Schubert
- Jon Schoning
- Jérémie Bresson ❤️
- Jörn Ahrens
- Keni Steward
- Marcin Stefaniuk
- Martin Delille
- Masahiro Yamauchi
- Michele Albano
- Ramzi Maalej
- Ravindra Nikam
- Ricardo Cardona
- Sebastian Haas
- Sebastian Mandrean
- Sreenidhi Sreesha
- Stefan Krismann
- Stephane Carrez
- Takuro Wada
- Tomasz Prus
- Tristan Sloughter
- Victor Orlovsky
- Victor Trakhtenberg
- Vlad Frolov
- Vladimir Pouzanov
- William Cheng
- Xin Meng ❤️
- Xu Hui Hui
- antihax
- beatcracker
- daurnimator
- etherealjoy
- jfiala
- lukoyanov
❤️ = Link to support the contributor directly
7 - License
Copyright 2018 OpenAPI-Generator Contributors (https://openapi-generator.tech) Copyright 2018 SmartBear Software
مرخصة بموجب ترخيص Apache ، الإصدار 2.0 ("الترخيص") ؛ لا يجوز لك استخدام هذا الملف إلا في الامتثال للترخيص. You may obtain a copy of the License at apache.org/licenses/LICENSE-2.0
ما لم يكن مطلوبًا بموجب القانون المعمول به أو الموافقة على الكتابة ، يتم توزيع البرامج الموزعة بموجب الترخيص على أساس "كما هي" ، دون ضمانات أو شروط من أي نوع ، إما صريحة أو ضمنية. راجع ترخيص الأذونات والقيود التي تحكم اللغة المحددة بموجب الترخيص.