asp.net core web api [Route] 路由 get post

本文详细解析了API路由配置及HTTP方法的使用,包括GET和POST请求的参数传递方式,以及如何通过Postman工具进行测试。从基本的路由设置到复杂的参数处理,全面覆盖API开发的关键知识点。

[Route("api/[controller]")] api表示端口后面得先输入api,[controller]表示当前控制器文件.cs文件名除了controller.cs的部分

即如果文件名为appleController.cs则默认的路由为http:aaa.bbb.ccc.ddd:eeee/api/apple。api改成别的都可以。

Get地址备注
[HttpGet]/api/apple 
[HttpGet("add")]/api/apple/add 
[HttpGet("add/{id}")]/api/apple/add/43964396可以为其他值,当做参数传给方法
[HttpGet("add/id={id}")]/api/apple/add/id=43964396可以为其他值,当做参数传给方法
[HttpGet("add/{id=4396}")]/api/apple/add如果不传入参数,id默认为4396,id为参数
[HttpGet("add/{id?}")]/api/apple/add在add后面可以输入也可以不输入,不输入则参数默认为0
[HttpGet("add/{name}/id")]/api/apple/add/zhangsan/idzhangsan会作为参数传给方法

除了使用上述隐式方式传递参数以外,还可以明确使用参数传递

1.传递一个参数

[HttpGet("get2")]
        public string get2(string name)
        {
            return "name is:" + name;
        }

https://localhost:44375/api/web/get2?name=111

2.传递2个参数

[HttpGet("get3")]
        public string get3(string name, string value)
        {
            return "name is:" + name + "value is:" + value;
        }

https://localhost:44375/api/web/get3?name=111&value=222


以上2种方式,是post和get都可以用的。但是浏览器默认使用的get,无法使用post方式。

所以我们用postman工具来测试post,直接百度postman下载客户端。

安装完postman后,使用前必须把ssl打开

不然测试会不成功


下面就来测试post

1.传递一个参数

[HttpPost("post1")]
        public string post1(string str1)
        {

            return "接收到的参数是" + str1;
        }

2.传递2个参数

[HttpPost("post2")]
        public string post2(string str1, string str2)
        {

            return "str1:" + str1 + "str2:" + str2;
        }

3.使用http body传递信息

[HttpPost("post3")]
        public string post3([FromBody]string str1)
        {

            return "接收到的参数是" + str1;
        }

如果body里面有",则需要转义,变成\"

ASP.NET Core Web API允许你创建RESTful服务,其中POST接口用于向服务器提交数据。下面是一个简单的示例,展示如何在ASP.NET Core MVC项目中创建一个POST方法: 首先,你需要安装Microsoft.AspNetCore.Mvc NuGet包,它包含了控制器和路由的基础功能。 1. 创建一个新的控制器:在`Controllers`文件夹下创建一个新的控制器类,比如`ValuesController.cs`: ```csharp using Microsoft.AspNetCore.Mvc; [ApiController] [Route("api/[controller]")] public class ValuesController : ControllerBase { } ``` 这里我们声明了一个API控制器,它的路由前缀是`api/values`。 2. 添加POST方法:在`ValuesController`类中添加一个名为`Create`的POST方法,接收JSON数据并返回HTTP状态码和响应: ```csharp [HttpPost] public IActionResult Create([FromBody] ValueModel value) { // 检查输入模型是否有效 if (value == null) { return BadRequest("Invalid request body"); } // 对值进行处理,例如存储到数据库或其他地方 // 这里仅做示例,实际操作应替换为保存操作 _context.Values.Add(value); _context.SaveChanges(); return CreatedAtAction(nameof(Get), new { id = value.Id }, value); } // 需要有对应的 GET 方法,以便通过ID获取新创建的数据 [HttpGet("{id}")] public ActionResult<ValueModel> Get(int id) { var value = _context.Values.FirstOrDefault(v => v.Id == id); return value ?? NotFound(); } ``` 在这个例子中,`ValueModel`是你需要定义的数据模型,`_context`通常是`DbContext`实例,用于数据库操作。
评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值