dotnet初探:用miniapi创建一个自己的url
致谢
首先写在前面,非常感谢微软mvp桂素伟先生的技术分享,因为微软的文档大部分都如机器翻译般的生硬,让人难以读下去,正是他的无私分享为我的.net学习旅程提供了方向,非常感谢。如果大家对他比较感兴趣,可以直接关注微信公众号(桂迹)
创建url需要知道的必要知识
根据Http协议的规定,一般客户端/浏览器发送的请求大概分成四类:创建、删除、更新、读取,也就是post、get、put、delete四个方法,也有计算机网络学的不错的小伙伴会说:你为什么不说patch?其实这个和put的功能差不多,我为了简单就不说了。
创建一个自己的url
要创建一个url,我们可以直接使用Mapxxx方法,比如 MapPost()
,也可以用注解 [Route("url")]
,我为了简单,直接使用Mapxxx。
创建一个最简单url
MapGet('/hello',()=>"hello");
这里创建了一个网址/hello形式的url,它执行第二个参数里的匿名函数,如果访问这个url,浏览器会显示 hello 。
创建一个带参数的url
如果你写过表单,或者上百度时看到网址里面有一个?后跟着xxx=xxx这样的关键词,或许不明白是什么。其实很简单,就是一个参数,比如你填写的一个问卷就是这样的。
有时候我们也需要一个这样的参数,以便让api可以得到一个参数来进行操作,那要怎么实现呢?微软官方文档是直接用了一个直接传递值的方法,就像这样:
MapGet('/hello/{id}',(UUID id)=>"hello");
这样固然可以传递参数,但是缺点是比较混乱,我们难以操作。这时,可以使用 key=val 的方法来传递参数,微软也提供了相应的方法,我们只需要引用 Microsoft.AspNetCore.Mvc
命名空间即可。然后就可以使用FormContext类的注解了。
由于我们只需要传参,所以我使用了FormQuery注解,代码如下:
MapGet('/hello/{id}',([FormQuery(Name="id")] id)=>"hello");
还可以使用 FormHeader 从HTTP头传递参数:
MapGet('/hello/{id}',([FormHeader] id)=>"hello");
从body传递同理:
MapGet('/hello/{id}',([FormBod] id)=>"hello");
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!