解决方案

C# webAPI 精解

seo靠我 2023-09-23 05:46:34

入门 创建一个web项目

先创建一个web项目 基本可以运行的程度 用postman进行接口测试

.NET Framework 和 .NET Core 都可以创建 webAPI 这里用 .NET FramSEO靠我ework 比较简单 。

启动 Visual Studio,并从“开始”页中选择“新建项目”。 或者,在 “文件” 菜单中,选择“ 新建 ”,然后选择“ 项目”。

在 “模板 ”窗格中,选择 “已安装的模SEO靠我板 ”并展开 “Visual C# ”节点。 在 Visual C# 下,选择 “Web”。 在项目模板列表中,选择 ASP.NET Web 应用程序 或者直接在创建页面搜索 “ASP.NET Web SEO靠我应用程序”

选择 webAPI

创建好先关了 概述页面

接下来要关注的文件夹只有 models 和 Controllers

在models 里添加Product 类namespace ProductsApp.SEO靠我Models {public class Product{public int Id { get; set; }public string Name { get; set; }publSEO靠我ic string Category { get; set; }public decimal Price { get; set; }} }

在controllers 里添加控制器 webSEO靠我api 2 空 的

填写名称有一定要在controller 前加上对应数据类的名称 --ProductsController

入门 定义方法

定义GetAllProducts () 和 GetProductSEO靠我()方法

using System; using System.Collections.Generic; using System.Linq; usingSEO靠我 System.Net; using System.Net.Http; using System.Web.Http;using WebApplication1.ModeSEO靠我ls; using System; using System.Collections.Generic; using System.Linq; SEO靠我 using System.Net; using System.Web.Http;namespace WebApplication1.Controllers {puSEO靠我blic class ProductsController : ApiController{Product[] products = new Product[]{new Product { Id = SEO靠我1, Name = "Tomato Soup", Category = "Groceries", Price = 1 },new Product { Id = 2, Name = "Yo-yo", CSEO靠我ategory = "Toys", Price = 3.75M },new Product { Id = 3, Name = "Hammer", Category = "Hardware", PricSEO靠我e = 16.99M }};public IEnumerable<Product> GetAllProducts(){return products;}public IHttpActionResultSEO靠我 GetProduct(int id){var product = products.FirstOrDefault((p) => p.Id == id);if (product == null){reSEO靠我turn NotFound();}return Ok(product);}} }

接下来直接运行就能看到我们的api了

如果报错 localhost 拒绝了我们的连接请求极有可能是端口繁忙,SEO靠我稍等一下就正常了

输入 https://localhost:44378/api/Products 就可查看返结果

到此 web api 简单完成了

入门 操作返回结果

ASP.NET Web API如何将返回SEO靠我值从控制器操作转换为 HTTP 响应消息

如果操作返回 HttpResponseMessage,Web API 使用 HttpResponseMessage 对象的属性来填充响应,将返回值直接转换为 SEO靠我HTTP 响应消息。public class ValuesController : ApiController {public HttpResponseMessage Get(){HtSEO靠我tpResponseMessage response = Request.CreateResponse(HttpStatusCode.OK, "value");response.Content = nSEO靠我ew StringContent("hello", Encoding.Unicode);response.Headers.CacheControl = new CacheControlHeaderVaSEO靠我lue(){MaxAge = TimeSpan.FromMinutes(20)};return response;} }

IHttpActionResult在实际使用时可以用 SysteSEO靠我m.Web.Http.Results 命名空间中定义的 IHttpActionResult 实现。 ApiController 类定义返回这些内置操作结果的帮助程序方法。

其中定义了很多返回的类型可以直SEO靠我接调用

public IHttpActionResult Get (int id) {Product product = _repository.Get (id);if (productSEO靠我 == null){return NotFound(); // Returns a NotFoundResult}return Ok(product); // Returns an OkNegotiaSEO靠我tedContentResult }

入门 帮助页 和说明文档

添加 API 文档

默认情况下,帮助页包含文档的占位符字符串。 可以使用 XML 文档注释 创建文档。 若要启用此功能,请打开SEO靠我文件 Areas/HelpPage/App_Start/HelpPageConfig.cs 并取消注释以下行

config.SetDocumentationProvider(new XmlDocumenSEO靠我tationProvider(HttpContext.Current.Server.MapPath("~/App_Data/XmlDocument.xml")));

下一步 勾选 , 输入生成路径

完成 SEO靠我这时给 controller上的方法写/// ///注释 会显示在帮助文档上/// <summary>/// 方法名和请求方式是一一对应的/// </summary>public IHttpActioSEO靠我nResult GetEmployee(int id)

路由

“SEO靠我”的新闻页面文章、图片、音频、视频等稿件均为自媒体人、第三方机构发布或转载。如稿件涉及版权等问题,请与 我们联系删除或处理,客服邮箱:html5sh@163.com,稿件内容仅为传递更多信息之目的,不代表本网观点,亦不代表本网站赞同 其观点或证实其内容的真实性。

网站备案号:浙ICP备17034767号-2