webapi get 方法 接收json 对象_Asp.netCore3.0 简单的webapi接口 (上)

本文介绍了如何在ASP.NET Core 3.0中创建一个简单的WebAPI接口,通过GET方法接收JSON对象。从设置Visual Studio 2019和.NET Core 3.0开发环境开始,逐步讲解新建项目、运行项目、Startup.cs配置、创建第一个Controller并添加全局路由的过程。在创建UserController时,添加了一个GET方法的Login接口,展示了如何处理HTTP请求和返回JSON数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

开发环境

Visual Studio 2019
.net core 3.0

打开vs2019新建项目

具体步骤如下图:

d9500afd50d98f537d4f29f9ecb03bd5.png

第一步创建新项目

db710cf51f9a5c5d9630f8535af6c8c8.png

第二步选择ASP.NET Core Web应用程序然后下一步

1314d95856237bf637d78b0bd0ee5c3c.png

第三步配置新项目然后点创建

在这里我们选择系统自带的项目

b1f9210994be34ad4e548f4ebb99c471.png

第四步创建新的ASP.Net Core Web 应用程序

点击创建,如下图:

d6159e470bf634f9f0285d079148ebe3.png

XXX webapi

运行项目

F5运行项目,然后就可以看到微软为我们写好的一个天气预报示例webapi了,这里只有一个Get请求示例,返回值为json格式。

e7ca317ccaca5fae07e36c025d38da71.png

天气预报webapi示例

Startup.cs说明

注意:services.AddControllers();和 endpoints.MapControllers(); 方法成对出现, 这是.net core3.0中的最新写法

ConfigureServices方法
用来向容器中注册服务,注册好的服务可以在其他地方进行调用.

Configure方法
用来配置中间件管道,即如何响应http请求.

ecb1a0e282ae91ee950c0892d416f27b.png

请求体描述

创建第一个Controller

1 右键删除系统默认创建的WeatherForecastController.cs和WeatherForecast.cs
2 新建一个控制器,命名:UserController.cs

9a47de44a2f5266f3ce818a2a553b9b1.png

新建UserController 01

fe895f2a2582cd279e8c2fa4d8043062.png

新建UserController 02

b489d007e9b66058fa338f1190cd8470.png

新建UserController 03

新建后:

e2a29d709e18edbf7dc05ae72dd78c90.png

UserController

注:我们打开项目依赖项,可以看到系统默认给我们增加了EntiyFrameworkCore的引用,由此就可以看出微软也在大力推广EF的使用了。

c337f3d816e247cb30a2a2eadd479c66.png

image.png

回归正题,我们在UserController中增加一个Login的get方式的接口方法,返回一个hello,我们打算通过请求api/User/Login来得到这个hello,F5运行程序

namespace XXX.api.Controllers{    [Route("api/[controller]")]    [ApiController]    public class UserController : ControllerBase    {        [HttpGet]        public IActionResult Login()        {            return Ok("hello");        }    }}
965e8145217881f1ebc5b8ae5717153f.png

404了

问题来了,为啥直接给打开weatherforecast,而且还404了,别急,往下看。

在项目Properties中打开launchsettings.json。

f7aa751fe34dabc9c1a9bf5524efe404.png

launchsettings.json

修改launchsettings.json,我们删掉了关于IIS相关的内容(让webapi不通过IIS来加载),然后修改了lauchUrl属性,如下:

{  "profiles": {    "XXX.api": {      "commandName": "Project",      "launchBrowser": true,      "launchUrl": "api/User/Login",      "applicationUrl": "http://localhost:5000/",      "environmentVariables": {        "ASPNETCORE_ENVIRONMENT": "Development"      }    }  }}
6d413d7ed76ecbe652371b2ccf31383f.png

依然404

(┬_┬)怎么还是404?别急继续往下看

因为我们是要通过api/User/Login来得到这个hello,所以我们要在UserController里定义一个action的动作,这样才能通过api/User/Login来得到这个hello,如下图新增action

2b1acb7b4f639138aaddd7cd5d98dd25.png

F5运行结果如下:

2d29cd79e200e5aea783b22348a33162.png

运行结果

增加全局路由

上面增加action虽然能达到想要的结果,但是每次新建一个Controller都有写个action万一要是忘记了又要忙乎半天,有没有一劳永逸的办法呢?
继续往下看:
1.首先去掉Controller里的Route和ApiController

3b8b3474049b84ecff62c7584a737a9f.png

1

2.修改Startup.cs,增加路由模版:

b629454d2bc67a484e67b5fbe3a9272e.png

配置路由

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值