一家企业如何建设自己的网站 下载博客网站开发技术
2025/12/26 16:28:39 网站建设 项目流程
一家企业如何建设自己的网站 下载,博客网站开发技术,中国制造网谷歌seo,中国住建网查询证书总览 以往web开发中#xff0c;编写controller层的conVO对象代码占据了大量时间#xff0c;如果我们能直接用接口yaml文件生成这些对象就好了#xff0c;这样我们编写的yaml文件可以直接生成controller层以及VO对象#xff0c;我们也可以把yaml文件直接提供给调用方#…总览以往web开发中编写controller层的conVO对象代码占据了大量时间如果我们能直接用接口yaml文件生成这些对象就好了这样我们编写的yaml文件可以直接生成controller层以及VO对象我们也可以把yaml文件直接提供给调用方生成http客户端代码发起服务调用。本工程提供了利用openapitools利用yaml文件直接生成controller代码以及httpclient客户端符合API-First开发理念。什么是API-First开发理念API-FirstAPI 优先是一种以 API 为核心驱动的软件开发模式—— 在编写任何业务代码前先设计、定义并冻结 API 规范如 OpenAPI/Swagger 规范再以该规范为 “契约”同步推进前后端、跨语言如 Java/C开发最终所有模块通过统一 API 对接。简单说先定 “接口契约”再写代码而非传统 “先写后端代码再凑接口文档最后前端适配” 的模式。OpenAPITools介绍OpenAPI Generator 能够根据 OpenAPI 规范同时支持 2.0 和 3.0 版本自动生成 API 客户端库SDK 生成、服务端桩代码接口骨架、文档及配置文件。OpenAPITools主页OpenAPI Generator快速入门本章节我们将演示如何通过一个swagger的yaml接口文件生成controller以及okhttp/feign等客户端代码。使用jdk21项目已在github上开源https://github.com/zjurenjie/java-openapi-generator新建项目工程项目工程结构如下|---java-openapi-generator|---pom.xm# 父pom文件定义三方件的依赖版本|---java-openapi-controller# 服务端模块生成controller层代码|---src/main/java# 服务端代码|---src/main/resource# 资源文件|---openapi|---v1|---openapi.yaml# 接口yaml用于生成服务端controller与客户端代码|---java-openapi-sdk# 客户端模块生成okhttp/feign等客户端代码配置maven依赖测试yaml文件这里我们可以使用OpenAPI Generator样例中的yaml示例也可以使用自己已经写好的yaml这里使用OpenAPI Generator样例中的ping some object示例并加tag为curl的相关方法OpenAPI Generator样例openapi:3.0.1info:title:ping some objectversion:1.0servers:-url:http://localhost:8082/tags:-ping-curlpaths:/ping:get:operationId:getPingparameters:-description:ID of pet that needs to be updatedexplode:truein:queryname:petIdrequired:trueschema:format:int64type:integerstyle:formrequestBody:content:application/x-www-form-urlencoded:schema:$ref:#/components/schemas/getPing_requestresponses:200:content:application/json:schema:$ref:#/components/schemas/SomeObjdescription:OKtags:-pingx-streaming:truex-group-parameters:truex-content-type:application/x-www-form-urlencodedx-accepts:-application/jsonpost:operationId:postPingrequestBody:content:application/json:schema:$ref:#/components/schemas/SomeObjresponses:200:content:application/json:schema:$ref:#/components/schemas/SomeObjdescription:OKtags:-pingx-streaming:truex-content-type:application/jsonx-accepts:-application/json/curl:get:operationId:getCurlparameters:-description:ID of pet that needs to be updatedexplode:truein:queryname:petIdrequired:trueschema:format:int64type:integerstyle:formrequestBody:content:application/x-www-form-urlencoded:schema:$ref:#/components/schemas/getCurl_requestresponses:200:content:application/json:schema:$ref:#/components/schemas/SomeObjdescription:OKtags:-curlx-streaming:truex-group-parameters:truex-content-type:application/x-www-form-urlencodedx-accepts:-application/jsonpost:operationId:postCurlrequestBody:content:application/json:schema:$ref:#/components/schemas/SomeObjresponses:200:content:application/json:schema:$ref:#/components/schemas/SomeObjdescription:OKtags:-pingx-streaming:truex-content-type:application/jsonx-accepts:-application/jsoncomponents:schemas:SomeObj:example:name:nameactive:true$_type:SomeObjIdentifierid:0type:typeproperties:$_type:default:SomeObjIdentifierenum:-SomeObjIdentifiertype:stringid:format:int64type:integername:type:stringactive:type:booleantype:type:stringtype:objectSimpleOneOf:oneOf:-type:string-type:integergetPing_request:properties:name:description:Updated name of the pettype:stringstatus:description:Updated status of the pettype:stringtype:objectgetCurl_request:properties:name:description:Updated name of the pettype:stringstatus:description:Updated status of the pettype:stringtype:object使用maven插件生成服务端代码openapi-generator-maven-plugin官网指导https://github.com/OpenAPITools/openapi-generator/blob/master/modules/openapi-generator-maven-plugin/README.md工程中配置如下使用maven-clean-plugin插件自动清理生成的文件使用openapi-generator-maven-plugin生成服务端代码buildpluginsplugingroupIdorg.apache.maven.plugins/groupIdartifactIdmaven-clean-plugin/artifactIdconfigurationfilesetsfilesetdirectory${project.basedir}/src/main/java/org/org/numb/openapi/generator/gen/directory/fileset/filesets/configuration/pluginplugingroupIdorg.openapitools/groupIdartifactIdopenapi-generator-maven-plugin/artifactId!-- RELEASE_VERSION --version${openapi-generator-maven-plugin.version}/versionexecutionsexecutionidgenerate-controller/idphasegenerate-resources/phasegoalsgoalgenerate/goal/goalsconfiguration!-- 1. 关键配置OpenAPI 规范文件本地路径或 URL --inputSpec${project.basedir}/src/main/resources/openapi/v1/openapi.yaml/inputSpec!-- 或从远程 API 获取规范inputSpechttp://localhost:8080/v3/api-docs/inputSpec --!-- 2. 生成代码目标语言必填支持 50 语言小写 --!-- 常用语言java、python、go、typescript-axios、php、csharp 等 --generatorNamespring/generatorNamelibraryspring-boot/library!-- 3. 输出目录生成的代码存放位置默认 src/main/java --output${project.basedir}/output!-- 4. 包配置Java 语言专属指定生成代码的包名 --packageNameorg.org.numb.openapi.generator.gen/packageName!-- 根包名 --apiPackageorg.org.numb.openapi.generator.gen.delegate/apiPackage!-- API 操作类包名 --modelPackageorg.org.numb.openapi.generator.gen.model/modelPackage!-- 数据模型包名 --!-- 5. 额外配置可选根据语言自定义 --generateModelTestsfalse/generateModelTests!-- 不生成模型测试代码 --generateApiTestsfalse/generateApiTests!-- 不生成API测试代码 --openapiGeneratorIgnoreListpom.xml/openapiGeneratorIgnoreListconfigOptionsinterfaceOnlytrue/interfaceOnlydateLibraryjava21/dateLibrary!-- 日期处理用 Java8 LocalDate --useJakartaEetrue/useJakartaEe!-- 是否使用 Jakarta EE默认 false用 Java EE --useBeanValidationtrue/useBeanValidationdelegatePatterntrue/delegatePatternuseSpringControllerfalse/useSpringControlleruseOneOfInterfacestrue/useOneOfInterfaces/configOptions!-- 6. 忽略已存在的文件避免覆盖手动修改的代码可选 --ignoreFileOverride${project.basedir}//ignoreFileOverride/configuration/execution/executions/plugin/plugins/buildconfiguration常用配置inputSpecOpenAPI 规范文件本地路径或 URLgeneratorName生成代码目标语言当生成服务端代码时使用springlibrary支持spring-boot、spring-cloud等标签library服务端常用spring-boot、spring-cloud。spring-boot为生成controller代码如果指定spring-cloud还会生成feign的客户端接口output输出目录生成的代码存放位置默认 src/main/javapackageName根包名配置Java 语言专属指定生成代码的包名apiPackageAPI 操作类包名modelPackage 数据模型包名generateModelTests不生成模型测试代码generateApiTests不生成API测试代码openapiGeneratorIgnoreList不生成的文件列表这里可以配置pom.xml让我们可以重新定义依赖组件的版本不由openapi-tools控制configOptions常用配置interfaceOnly: 只生成controller接口代码不生成实现类useJakartaEe是否使用 Jakarta EE默认 false用 Java EE使用jdk17/jdk21与springboot3.x设置为trueuseBeanValidation是否开启bean校验delegatePattern是否使用代理模式生成服务端代码spring服务端更多配置参考https://openapi-generator.tech/docs/generators/spring/#config-options客户端配置与服务端配置不同可根据生成代码需求按照generator类型分类查找https://openapi-generator.tech/docs/generators/

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询