如何建立营销型网站现在做网站用什么

news/2025/9/23 17:35:42/文章来源:
如何建立营销型网站,现在做网站用什么,制作手机网站用什么软件,南县做网站多少钱前言 Swagger 是一个开源的框架#xff0c;支持 OpenAPI 规范#xff0c;可以根据 API 规范自动生成美观的、易于浏览的 API 文档页面#xff0c;包括请求参数、响应示例等信息#xff0c;并且#xff0c;Swagger UI 提供了一个交互式的界面#xff0c;可以帮助我们快速… 前言 Swagger 是一个开源的框架支持 OpenAPI 规范可以根据 API 规范自动生成美观的、易于浏览的 API 文档页面包括请求参数、响应示例等信息并且Swagger UI 提供了一个交互式的界面可以帮助我们快速测试和调试 API验证 API 的功能和正确性。 总的来说Swagger 是一个强大的工具可以帮助开发人员设计、构建和文档化 RESTful API提高 API 的可读性、可维护性和互操作性有了它我们就可以更方便、更有效率地管理 API。 在 ASP.NET Core 中已经内置了 Swagger很方便就能使用。但在 ASP.NET 里需要我们自己引用和配置才能使用它下面通过一个 Step By Step 例子来看看 ASP.NET Web Api 如何使用 Swagger。 Step By Step 步骤 创建 .netframework webapi 项目 在项目上右键 - 项目属性 - 生成 - 输出勾选 “XML文档文件并填写自定义路径如App_Data\apidoc.xml” Nuget 安装以下 Swagger 相关的两个包 Swashbuckle Swagger.NET.UI这个不装也可以 创建 App_Start/SwaggerCacheProvider 辅助类用于获取 xml 文件注释内容留意注释 using Swashbuckle.Swagger; using System; using System.Collections.Concurrent; using System.Collections.Generic; using System.IO; using System.Linq; using System.Web; using System.Xml;namespace SwaggerTest {/// summary/// 支持方法注释/// /summarypublic class SwaggerCacheProvider : ISwaggerProvider{private readonly ISwaggerProvider _swaggerProvider;private static ConcurrentDictionarystring, SwaggerDocument _cache new ConcurrentDictionarystring, SwaggerDocument();private readonly string _xmlPath;/// summary/// 构造方法/// /summary/// param nameswaggerProvider/param/// param namexmlpath/parampublic SwaggerCacheProvider(ISwaggerProvider swaggerProvider, string xmlpath){_swaggerProvider swaggerProvider;_xmlPath xmlpath;}/// summary/// 生成 Swagger 文档并存入缓存/// /summary/// param namerootUrl/param/// param nameapiVersion/param/// returns/returns/// exception crefNotImplementedException/exceptionpublic SwaggerDocument GetSwagger(string rootUrl, string apiVersion){var cacheKey string.Format({0}_{1}, rootUrl, apiVersion);// 只读取一次if (!_cache.TryGetValue(cacheKey, out SwaggerDocument srcDoc)){srcDoc _swaggerProvider.GetSwagger(rootUrl, apiVersion);srcDoc.vendorExtensions new Dictionarystring, object{{ ControllerDesc, GetControllerDesc() }};_cache.TryAdd(cacheKey, srcDoc);}return srcDoc;}/// summary/// 从API文档中读取控制器描述/// /summary/// returns/returnsprivate ConcurrentDictionarystring, string GetControllerDesc(){ConcurrentDictionarystring, string controllerDescDict new ConcurrentDictionarystring, string();if (File.Exists(_xmlPath)){// 1. 加载生成 xmlXmlDocument xmldoc new XmlDocument();xmldoc.Load(_xmlPath);// 2. 读取控制器方法注释内容string[] arrPath;int cCount Controller.Length;foreach (XmlNode node in xmldoc.SelectNodes(//member)){string type node.Attributes[name].Value;if (type.StartsWith(T:)){arrPath type.Split(.);string controllerName arrPath[arrPath.Length - 1];if (controllerName.EndsWith(Controller)) //控制器{// 获取控制器注释XmlNode summaryNode node.SelectSingleNode(summary);string key controllerName.Remove(controllerName.Length - cCount, cCount);if (summaryNode ! null !string.IsNullOrEmpty(summaryNode.InnerText) !controllerDescDict.ContainsKey(key)){controllerDescDict.TryAdd(key, summaryNode.InnerText.Trim());}}}}}return controllerDescDict;}} } 创建 Scripts\swagger.js用于支持显示中文注释内容 use strict; window.SwaggerTranslator {_words: [],translate: function () {var $this this;$([data-sw-translate]).each(function () {$(this).html($this._tryTranslate($(this).html()));$(this).val($this._tryTranslate($(this).val()));$(this).attr(title, $this._tryTranslate($(this).attr(title)));});},setControllerSummary: function () {$.ajax({type: get,async: true,url: $(#input_baseUrl).val(),dataType: json,success: function (data) {var summaryDict data.ControllerDesc;var id, controllerName, strSummary;$(#resources_container .resource).each(function (i, item) {id $(item).attr(id);if (id) {controllerName id.substring(9);strSummary summaryDict[controllerName];if (strSummary) {$(item).children(.heading).children(.options).first().prepend(li classcontroller-summary title strSummary strSummary /li);}}});}});},_tryTranslate: function (word) {return this._words[$.trim(word)] ! undefined ? this._words[$.trim(word)] : word;},learn: function (wordsMap) {this._words wordsMap;} };/* jshint quotmark: double */ window.SwaggerTranslator.learn({Warning: Deprecated: 警告已过时,Implementation Notes: 实现备注,Response Class: 响应类,Status: 状态,Parameters: 参数,Parameter: 参数,Value: 值,Description: 描述,Parameter Type: 参数类型,Data Type: 数据类型,Response Messages: 响应消息,HTTP Status Code: HTTP 状态码,Reason: 原因,Response Model: 响应模型,Request URL: 请求 URL,Response Body: 响应体,Response Code: 响应码,Response Headers: 响应头,Hide Response: 隐藏响应,Headers: 头,Try it out!: 试一下,Show/Hide: 显示/隐藏,List Operations: 显示操作,Expand Operations: 展开操作,Raw: 原始,cant parse JSON. Raw result: 无法解析 JSON。原始结果,Model Schema: 模型架构,Model: 模型,apply: 应用,Username: 用户名,Password: 密码,Terms of service: 服务条款,Created by: 创建者,See more at: 查看更多,Contact the developer: 联系开发者,api version: api 版本,Response Content Type: 响应 Content Type,fetching resource: 正在获取资源,fetching resource list: 正在获取资源列表,Explore: 浏览,Show Swagger Petstore Example Apis: 显示 Swagger Petstore 示例 Apis,Cant read from server. It may not have the appropriate access-control-origin settings.: 无法从服务器读取。可能没有正确设置 access-control-origin。,Please specify the protocol for: 请指定协议,Cant read swagger JSON from: 无法读取 swagger JSON于,Finished Loading Resource Information. Rendering Swagger UI: 已加载资源信息。正在渲染 Swagger UI,Unable to read api: 无法读取 api,from path: 从路径,server returned: 服务器返回 }); $(function () {window.SwaggerTranslator.translate();window.SwaggerTranslator.setControllerSummary(); }); 右键 Scripts\swagger.js - 属性 - 生成操作 - 改为 “嵌入的资源” 打开并修改 App_Start\SwaggerConfig.cs安装以上包后自动生成此文件以下是修改后的完整代码 using System.Web.Http; using WebActivatorEx; using SwaggerTest; using Swashbuckle.Application; using System.Reflection;[assembly: PreApplicationStartMethod(typeof(SwaggerConfig), Register)] namespace SwaggerTest {// 完整版 Swagger config 代码/// summary/// 配置 Swagger/// /summarypublic class SwaggerConfig{/// summary/// 注册/// /summarypublic static void Register(){var thisAssembly typeof(SwaggerConfig).Assembly;GlobalConfiguration.Configuration.EnableSwagger(c {//用于启用和设置Swagger的配置信息。c.SingleApiVersion(v2, 测试 API 接口文档);c.IncludeXmlComments(${System.AppDomain.CurrentDomain.BaseDirectory}\bin\SwaggerTest.xml);//获取项目指定路径下xml文件c.CustomProvider((defaultProvider) new SwaggerCacheProvider(defaultProvider, ${System.AppDomain.CurrentDomain.BaseDirectory}\bin\SwaggerTest.xml));}).EnableSwaggerUi(c {//用于启用UI界面上的东西。//加载汉化的js文件注意 swagger.js文件属性必须设置为“嵌入的资源”。 APIUI.Scripts.swagger.js依次是项目名称-文件夹-js文件名 c.InjectJavaScript(Assembly.GetExecutingAssembly(), SwaggerTest.Scripts.swagger.js);});}} } 打开并注释掉 App_Start\SwaggerNet.cs 代码安装以上包后自动生成此文件 using System; using System.IO; using System.Web; using System.Web.Http; using System.Web.Http.Description; using System.Web.Http.Dispatcher; using System.Web.Routing; using Swagger.Net;//[assembly: WebActivator.PreApplicationStartMethod(typeof(SwaggerTest.App_Start.SwaggerNet), PreStart)] //[assembly: WebActivator.PostApplicationStartMethod(typeof(SwaggerTest.App_Start.SwaggerNet), PostStart)] namespace SwaggerTest.App_Start {/// summary/// Swagger Net /// /summarypublic static class SwaggerNet {//public static void PreStart() //{// RouteTable.Routes.MapHttpRoute(// name: SwaggerApi,// routeTemplate: api/docs/{controller},// defaults: new { swagger true }// ); //}//public static void PostStart() //{// var config GlobalConfiguration.Configuration;// config.Filters.Add(new SwaggerActionFilter());// try// {// config.Services.Replace(typeof(IDocumentationProvider),// new XmlCommentDocumentationProvider(HttpContext.Current.Server.MapPath(~/bin/SwaggerTest.XML)));// }// catch (FileNotFoundException)// {// throw new Exception(Please enable \XML documentation file\ in project properties with default (bin\\SwaggerTest.XML) value or edit value in App_Start\\SwaggerNet.cs);// }//}} } 至此Swagger 配置就完成了接着就可以运行看看效果了 测试 配置完成后直接运行项目打开以下网址即可看到效果https://localhost:44335/swagger/其它 Swagger.NET.UI不是必要的运行 SwaggerUI目录下面的 index 反而会出错 我是老杨一个奋斗在一线的资深研发老鸟让我们一起聊聊技术聊聊人生。 都看到这了求个点赞、关注、在看三连呗感谢支持。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/913333.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

厦门网站建设制作多少钱沂南网站开发

文章目录 1. 符号化2. 属性字段分式标注在ArcGIS及Pro中很容易实现格式化标签的,本文讲解在ArcGIS Pro中实现属性字段分式标注,结果如下图所示: 1. 符号化 右键数据图层→符号系统,打开符号系统对话框,住符号系统选择【唯一值】,字段1选择NAME。 2. 属性字段分式标注 加…

企业网站建设方案案例php网站方案

目录 一、介绍二、APP 爬虫常见反爬三、APP 抓包常用工具四、模拟器五、安装 APP1、下载 APP2、安装 APP 六、fiddler1、工作原理2、安装3、基本介绍 七、环境配置1、fiddler 的配置2、夜神模拟器的配置 八、案例 一、介绍 爬虫分类——数据来源 1、PC 端爬虫(网页…

西安注册公司地址可以是住宅吗旺道seo优化软件

本文同步Java知音社区,专注于Java作者:linkt1234http://blog.csdn.net/Linkthaha/article/details/100575278最近,在对公司容器云的日志方案进行设计的时候,发现主流的ELK或者EFK比较重,再加上现阶段对于ES复杂的搜索功…

邱启良 深圳网站建设海外网红营销平台

PCL (Point Cloud Library)可视化点云的工具 PCL (Point Cloud Library) 提供了一系列的工具和类用于点云的可视化。以下是其中的一些主要工具和功能: pcl::visualization::CloudViewer: 如前所述,这是一个简单易用的可视化工具,主要用于基本的点云显示。pcl::visualizatio…

中山建设工程招聘信息网站帮企业建设网站保密合同

一阶低通滤波器的推导过程和双线性变换算法请查看下面文章链接: PLC算法系列之数字低通滤波器(离散化方法:双线性变换)_双线性离散化_RXXW_Dor的博客-CSDN博客PLC信号处理系列之一阶低通(RC)滤波器算法_RXXW_Dor的博客-CSDN博客_rc滤波电路的优缺点1、先看看RC滤波的优缺点…

有没有学做零食的网站国内室内设计公司前十名

文章目录 数字相关操作整除与求余取整无穷大进制转换 华为OD算法/大厂面试高频题算法练习冲刺训练 数字相关操作 整除与求余 一般而言,我们使用整除运算//和求余运算%来计算两个整数相除的商和余数。 div 10 // 4 mod 10 % 4如果想要同时得到商和余数&#xff…

题解:P14058 【MX-X21-T3】[IAMOI R5] 两个人的演唱会

P14058:贪心、双指针。先特判这个环本身极差就不超过 \(m\) 的情况(此时答案为 \(1\))。 原问题在环上,不是很好解决,先考虑解决一个更简单的问题:小 R 有一个长度为 \(n\) 的,由正整数组成的链 \(a_1,\dots,a_…

CSP-J 2025 初赛试题解析(第一部分:阅读程序题(一)(16-21)) - 指南

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

玉林市网站开发公司电话大数据营销前景

本文更新日期:2019年9月21日很多人找不到mybatis jar或者下载mybatis jar需要付积分,所以本页面给大家提供一个便捷的下载通道,敬请关注。一、mybatis 3.5.2版本下载:此压缩包包含文件:(1)mybatis-3.5.2.jar(2)mybatis…

网站自适应与响应式开源的 二次网站开发

无人机是利用无线电遥控设备和自备的程序控制装置操纵的不载人飞机,或者由车载计算机完全地或间歇地自主地操作。无人机按应用领域,可分为军用与民用。军用方面,无人机分为侦察机和靶机。民用方面,无人机行业应用,是无…

江门招聘网最新招聘利于seo优化的网站

什么是长连接?其实长连接是相对于通常的短连接而说的,也就是长时间保持客户端与服务端的连接状态。通常的短连接操作步骤是:连接-》数据传输-》关闭连接;而长连接通常就是:连接-》数据传输-》保持连接-》数据传输-》保…

中国建设教育网官方网站网站开发备案费用

文章目录 1. ELK的概述1.1 简介1.2 使用ELK的理由1.3 ELK的主要组件1.3.1 Elasticsearch1.3.2 Kibana1.3.3 Logstash1.3.3.1 简介1.3.3.2 Logstash常用相关命令选项 1.3.3.3 Logstash 的输入和输出流1.3.4 Logstash的相关配置文件 1.3.4 Filebeat1.3.4.1 简介1.3.4.2 filebeat …

使用vue做商城网站项目难点想学网络营销怎么学

一:为什么需要NAT由于IP地址随着互联网的发展而逐渐稀缺,难以使得每台主机都拥有一个公网上的IP地址,且并不是所有主机都需要一个公网上的地址,于是就有了NAT技术。NAT(The IP Network Address Translator)…

建设工程168类似的网站做网站经验

本文的研究目标是以高校校园外卖点餐为对象,使其高校校园外卖点餐为目标,使得高校校园外卖点餐的信息化体系发展水平提高。论文的研究内容包括对个人中心、美食分类管理、用户管理、商家管理、美食信息管理、工作人员管理、安全检查管理、系统管理、订单…

深入解析Wallarm安全边缘:API边缘的即时防护技术

本文详细介绍Wallarm安全边缘平台的API防护技术架构,包括其托管式SaaS部署模式、低延迟边缘节点设计、实时可观测性仪表板、多云高可用性架构以及双向TLS加密等核心安全特性,为企业提供即时部署的API安全解决方案。A…

找兼职h5网站开发人员怎样推广自己的视频号

作者 | 奇伢来源 | 奇伢云存储典型问题:服务端优雅的拒绝今天分享一个后端编程的实际经验。这个问题来源于对象 S3 后端协议实现的技巧思考。场景:服务端不想接收 http 的 body 的时候,该怎么优雅的拒绝呢?什么意思?对…

使用ai来搭建测试用例1

使用ai来搭建测试用例1我用的是工作流网页:https://www.coze.cn/home,自己注册一下,按照图片步骤操作,最后创建一下工作流名称,恭喜你,你有了一个工作流2、在工作流里面设置“开始”,修改需要上传的文件 3、点击…

面试八股文之——JVM与并发编程/多线程 - 教程

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

哈尔滨专业做网站德阳定制建站网站建设报价

jbpm 和 drools介绍 本文讨论了一项新功能,该功能允许使用集成在jBPM和Drools Workbenches中的直观友好的用户界面来管理应用程序的用户和组。 用户和组管理 在安装,设置和使用此功能之前,本文讨论了一些以前的概念,需要进一步理…