web api 文档声明
2023-09-11 14:20:18 时间
namespaceHelloWebAPI.Controllers{ usingHelloWebAPI.Models; usingSystem; usingSystem.Collections.Generic; usingSystem.Linq; usingSystem.Net; usingSystem.Net.Http; usingSystem.Web.Http; publicclassProductsController:ApiController { Product[] products =newProduct[] { newProduct{Id=1,Name="Tomato Soup",Category="Groceries",Price=1}, newProduct{Id=2,Name="Yo-yo",Category="Toys",Price=3.75M}, newProduct{Id=3,Name="Hammer",Category="Hardware",Price=16.99M} }; publicIEnumerable<Product>GetAllProducts() { return products; } publicProductGetProductById(int id) { var product = products.FirstOrDefault((p)=> p.Id== id); if(product ==null) { thrownewHttpResponseException(HttpStatusCode.NotFound); } return product; } publicIEnumerable<Product>GetProductsByCategory(string category) { return products.Where( (p)=>string.Equals(p.Category, category, StringComparison.OrdinalIgnoreCase)); } }}
为了让例子保持简单,我们直接把产品存到控制器类里的一个固定数组里。当然,在实际的程序里需要从数据库里查询或者用其它的一些外部数据源。
控制器定义了三个方法,要么返回单个商品,要么返回一组产品:
GetAllProducts
方法返回所有的产品,返回类型为 IEnumerable<Product> 。GetProductById
方法通过ID查询某个产品。GetProductsByCategory
方法返回指定分类的所有产品。
完事儿了!web API已经能用了。每一个控制器上的方法都对应了一个URI
控制器方法 | URI |
---|---|
GetAllProducts | /api/products |
GetProductById | /api/products/id |
GetProductsByCategory | /api/products/?category=category |
客户端只要通过放松一个HTTP GET请求到URI就可以调用相应的方法。待会儿我们来看看这个映射是怎么做的。但首先我们先把它跑起来试试。
1. Web API中包含的方法
Action |
HTTP method |
Relative URI |
GetAllContact |
GET |
/api/contact |
GetContact |
GET |
/api/contact /id |
GetListBySex |
GET |
/api/contact?sex=sex |
PostContact |
POST |
/api/contact |
PutContact |
PUT |
/api/contact/id |
DeleteContact |
DELETE |
/api/contact/id |
相关文章
- ASP.NET Web Projects: web.debug.config & web.release.config
- Web测试的各个测试点,居然这么全!(文末送web测试方法大全一份)
- List多个字段标识过滤 IIS发布.net core mvc web站点 ASP.NET Core 实战:构建带有版本控制的 API 接口 ASP.NET Core 实战:使用 ASP.NET Core Web API 和 Vue.js 搭建前后端分离项目 Using AutoFac
- 【C#】对异步请求处理程序IHttpAsyncHandler的理解和分享一个易用性封装 【手记】走近科学之为什么明明实现了IEnumerable<T>的类型却不能调用LINQ扩展方法 【手记】手机网页弹出层后屏蔽底层的滑动响应 【手记】ASP.NET提示“未能创建类型”处理 【Web】一个非常简单的移动web消息框 【手记】解决EXCEL跑SQL遇“查询无法运行或数据库表无法打开...”
- Ctrl+H 浪潮Raid配置文档
- Word控件Spire.Doc 【超链接】教程(8):在 C#/VB.NET 中链接到 Word 文档中的书签
- 《Spring 5 官方文档》18. Web MVC 框架(二)
- 在ASP.NET Core Web API上使用Swagger提供API文档
- .Net WebAPI文档自动化
- CMTimeRange (SwiftUI 中文文档手册)
- springboot+vue校园新闻网站(源码+说明文档)
- Flutter Web实战项目打造真正跨平台应用(windows,android,ios,linux,macos,web)
- DOM和SAX是应用中操纵XML文档的差别
- Web 之 Eclipse 搭建 Gradle 环境/并且运行 Gradle 工程(spring web)简单整理
- HighCharts 具体使用及API文档说明
- web在线编辑器与在线文档盘点