当前位置: 首页 > news >正文

网站服务器代码放在哪建立自己的影视网站

网站服务器代码放在哪,建立自己的影视网站,免费的微商城开发,如何用dw做网站在现代 Web 应用开发中#xff0c;API 文档的重要性不言而喻。清晰、准确、易用的 API 文档不仅可以方便开发者理解和使用 API#xff0c;还能提高团队协作效率。Knife4j 是一个基于 Swagger 的增强型 API 文档工具#xff0c;它可以为 Spring Boot 项目生成美观、易于交互的…  在现代 Web 应用开发中API 文档的重要性不言而喻。清晰、准确、易用的 API 文档不仅可以方便开发者理解和使用 API还能提高团队协作效率。Knife4j 是一个基于 Swagger 的增强型 API 文档工具它可以为 Spring Boot 项目生成美观、易于交互的 API 文档本文将介绍如何在 Spring Boot 项目中整合 Knife4j并提供详细的代码示例和最佳实践。 一、为什么选择 Knife4j Knife4j 是一个基于 Swagger 的增强型 API 文档框架相比于 Swagger UIKnife4j 提供了更强大的功能和更好的用户体验 界面美观 Knife4j 提供了更加美观和现代的界面使得 API 文档更具吸引力。功能强大 Knife4j支持在线调试、参数示例、离线文档导出等多种实用功能。易于集成 Knife4j 可以轻松地与 Spring Boot 集成。支持多种主题 Knife4j 提供了多种主题可以自定义 API 文档的风格。更好的可读性 Knife4j 在 API文档的呈现上做了优化使其更易于阅读和理解。 二、Spring Boot 整合 Knife4j实践 2.1 添加 Knife4j 依赖 dependencygroupIdcom.github.xiaoymin/groupIdartifactIdknife4j-spring-boot-starter/artifactIdversion3.0.3/version /dependencydependencyartifactIdguava/artifactIdgroupIdcom.google.guava/groupIdversion29.0-jre/version /dependency注意 请使用合适的版本号确保你的 Spring Boot 版本与 Knife4j 和 Swagger 兼容。 2.2 创建 Swagger 配置类 import com.github.xiaoymin.knife4j.spring.annotations.EnableKnife4j; import com.google.common.base.Function; import com.google.common.base.Optional; import com.google.common.base.Predicate; import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; import springfox.documentation.RequestHandler; import springfox.documentation.builders.ApiInfoBuilder; import springfox.documentation.builders.PathSelectors; import springfox.documentation.service.ApiInfo; import springfox.documentation.spi.DocumentationType; import springfox.documentation.spring.web.plugins.Docket; import springfox.documentation.swagger2.annotations.EnableSwagger2;Configuration EnableSwagger2 EnableKnife4j ConditionalOnWebApplication public class SwaggerConfig implements WebMvcConfigurer {/*** 定义分隔符*/private static final String SPLITOR ;;Bean(value systemApi)public Docket createSystemRestApi() {return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).groupName(1.系统管理模块).select().apis(basePackage(com.extend.chk.system.controller)).paths(PathSelectors.any()).build();}Bean(value reportApi)public Docket createReportRestApi() {return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).groupName(2.数据可视化模块).select().apis(basePackage(com.extend.chk.report.controller)).paths(PathSelectors.any()).build();}Bean(value warnApi)public Docket createWarnRestApi() {return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).groupName(3.预警模块).select().apis(basePackage((com.extend.chk.warn.controller))).paths(PathSelectors.any()).build();}private ApiInfo apiInfo() {return new ApiInfoBuilder().description(学习管理平台接口文档).version(v1.0.0).title(学习管理平台接口文档).build();}/*** 重写basePackage方法使能够实现多包访问* param basePackage* return*/public static PredicateRequestHandler basePackage(final String basePackage) {return input - declaringClass(input).transform(handlerPackage(basePackage)).or(true);}private static FunctionClass?, Boolean handlerPackage(final String basePackage) {return input - {// 循环判断匹配for (String strPackage : basePackage.split(SPLITOR)) {boolean isMatch input.getPackage().getName().startsWith(strPackage);if (isMatch) {return true;}}return false;};}private static Optional? extends Class? declaringClass(RequestHandler input) {return Optional.fromNullable(input.declaringClass());}/*** 配置静态资源* param registry*/Overridepublic void addResourceHandlers(ResourceHandlerRegistry registry) {registry.addResourceHandler(/static/**).addResourceLocations(classpath:/static/);} }Configuration: 标识这是一个配置类用来定义 Bean 或其他配置信息。EnableSwagger2: 启用 Swagger 2 来生成和管理 RESTful API 的文档。EnableKnife4j增强 Swagger UI 的展示效果提供更美观、功能更丰富的 API 文档界面。ConditionalOnWebApplication确保上述配置仅在应用程序为 Web 应用时才生效。Bean: 创建 Docket Bean用于配置 Swagger 文档信息。apiInfo(): 配置 API的基本信息例如标题、描述、版本号等。apis(basePackage((com.extend.chk.warn.controller))): 指定生成API 文档的 Controller 所在的包。paths(PathSelectors.any()): 定义路径过滤规则决定哪些 URL 路径应被包含在文档中这里设置为所有路径。groupName(1.系统管理模块)为生成的 API 分组指定名称。这可以将不同的 API 接口按功能或模块进行分类展示。 2.3 在类上使用 Swagger 注解 2.3.1 在controller里面使用Swagger 注解 Api(tags 项目管理) RestController RequestMapping(/project/manage) public class ProjectManageController extends BaseController {Autowiredprivate ProjectManageService ProjectManageService;ApiOperation(value 查询项目列表)GetMapping(/list)public ResultPageDataInfoProjectManage queryProjectManageList(ProjectManageReq req) {return success(buildPageDataInfo(ProjectManageService.queryProjectManageList(req)));}ApiOperation(value 查询项目详情)GetMapping(/query)public ResultProjectManage queryProjectManageById(Integer workspaceId, Integer projectId) {return success(ProjectManageService.queryProjectManageById(workspaceId, projectId));}ApiOperation(value 项目新增)PostMapping(value /add)Log(title 项目新增, businessType BusinessType.INSERT)public Result addProjectManage(Validated RequestBody ProjectManage ProjectManage) {ProjectManageService.addProjectManage(ProjectManage);return success();}ApiOperation(value 项目修改)PostMapping(value /update)Log(title 项目修改, businessType BusinessType.UPDATE)public Result updateProjectManage(Validated RequestBody ProjectManage ProjectManage) {ProjectManageService.updateProjectManage(ProjectManage);return success();}ApiOperation(value 项目删除)ApiImplicitParams({ApiImplicitParam(name workspaceId, value 空间id, required true),ApiImplicitParam(name projectId, value 项目id, required true)})PutMapping(value /delete)Log(title 项目删除, businessType BusinessType.DELETE)public Result operateProjectManage(Integer workspaceId, Integer projectId) {ProjectManageService.operateProjectManage(workspaceId, projectId);return success();} }Api: 用于描述 Controller 的基本信息例如分类标签。ApiOperation: 用于描述 API的基本信息例如接口名称、描述等。ApiImplicitParam: 用于描述 API的参数信息例如参数名称、类型、是否必填等。 2.3.2 在请求类和返回类里面使用Swagger 注解 ApiModel(value ProjectManage对象, description 项目管理表) public class ProjectManage extends BaseEntityProjectManage {private static final long serialVersionUID 1L;ApiModelProperty(主键id)private Integer id;ApiModelProperty(项目名称)private String name;ApiModelProperty(项目负责人id)private String ownerId;ApiModelProperty(项目成员id)private String memberId;ApiModelProperty(工作空间id)private Integer workspaceId;ApiModelProperty(项目状态(1-有效 2-失效))private String status;Overridepublic Serializable pkVal() {return this.id;} }ApiModel用于描述一个模型类通常是一个 DTO 或实体类提供该模型的详细信息如名称、描述等。它使得生成的 API文档能够清晰地展示数据模型的用途和结构。ApiModelProperty用于描述模型类中的具体字段指定字段的名称、类型、是否必填、默认值、备注等信息。这有助于开发者更好地理解每个字段的意义和用法。 2.4 访问 Knife4j 文档 启动 Spring Boot 应用并在浏览器中访问以下地址即可查看 Knife4j 生成的 API 文档 http://localhost:8080/extend/doc.html#/home三、最佳实践 使用 Swagger 注解描述 API 使用 Swagger 注解详细描述 API 的参数、响应、错误码等提高文档的可读性。根据API 分组 使用 Swagger 的分组功能将 API 分类展示方便用户查找。添加 API 示例 在 Swagger注解中添加 API 示例帮助用户快速了解 API 的使用方法。保持 API 文档与代码同步 确保 API文档和代码同步更新避免出现文档与代码不一致的问题。使用清晰的 API 命名 使用清晰的 API 命名和参数命名提高 API的可读性。
http://www.hkea.cn/news/14448319/

相关文章:

  • 做网站哪家便宜厦门购物网站建设详细教程
  • 网站上面的水印怎么做wordpress怎么放图片
  • 淘宝上的网站建设可信企业网站建设有名 乐云seo
  • 网站认证免费电子商务网站建设实训心得体会
  • o2o网站建设哪家好seo技术培训茂名
  • 网站建设验收程序修改wordpress上传路径
  • 聚美优品网站建设产品策略聊城市网站制作
  • 网站一级域名wordpress主题模仿
  • 做pc端网站公司重庆网站建设专家
  • python做网站的好处怀化网站优化加徽信xiala5效果好
  • 小勐拉网站建设企业产品网站源码
  • 网站建设费是多少网络建站步骤
  • 分享型网站建设网站建设论文html格式
  • 沂南网站建设如何做电商运营推广
  • 新注册网站大气腐蚀网站建设
  • 一个网站的后台怎么做wordpress 首页访问量
  • 做网站必须要注册公司么品牌推广的步骤和技巧
  • 网站备案 接入商自己怎么做家政网站
  • 阳光家园广州网站网址宿迁seo
  • 做配资 怎么在网站联系客户有没有知道网址的
  • 网站建设从哪入手怎么把园林设计网站做的酷炫
  • 上饶企业网站建设企业微信官方网站
  • 做加盟网站哪个最好网站企业备案
  • 如何修改网站做一个flash网站多少钱
  • 网站建设ftp上传是空目录做兼职比较好的网站
  • 合肥昱天建设有限公司网站淘宝的网站建设
  • 打折网站运营思路怎么加入网站做微商城
  • 长沙h5手机网站制作深圳北站设计者
  • 手机网站开发模拟陕西安康网站建设
  • 招聘网站数建设怎么做属于自己的域名网站