1.2 .net 8 ASP.NET Core Web API 项目创建之 Hello,World

一、概述

上一节演示了如何创建一个新的Web API 项目,并展示了如何运行及测试接口,这节的主要目标是增加一个hello的接口,接口返回内容为“Hello,World!”,在添加接口之前,我们先要对上一节的项目进行分析,只有了解项目的结构,才能知道怎么去添加新的接口和扩展新的功能。
在这里插入图片描述

二、项目分析

1、代码文件结构

为了便于介绍,我把项目结构进行了完全展开,如下图
在这里插入图片描述

2、展开介绍

(1)、Properties - launchSettings.json*

这个文件只有在开发环境下才有用,它用于配置程序在开发环境中用的端口号及启动方式。
打开文件,我们可以看到定义了两种启动方式
在这里插入图片描述
可以通过菜单栏上选择不同的启动方式,可以看到,launchSettings.json文件里面的两种启动方式,在下拉框中存在。
在这里插入图片描述

(2)、依赖项

主要是项目的一些依赖包或框架,可以看到,里面默认已经帮我们引入了一些基础包和框架,后续一些第三方的依赖包也是在这里引入依赖和管理,先了解即可。
在这里插入图片描述

(3)、Controllers

接口定义一般都是放在这个目录下,可以看到,里面包含了一个WeatherForecastController的文件,类标注了[ApiController]属性,表示这是一个API 类型的Controller,里面有一个Get请求的接口(在Controller中,[HttpGet]属性表示这是一个Get请求的接口,同理,如果是[HttpPost]则表示是Post请求的接口)
在这里插入图片描述
我们之前调试的接口就是它
在这里插入图片描述

(4)、appsettings.json

项目的配置文件,一些常见的配置信息可以写到里面,注意是Json格式

(5)、MyStudyAPI.Web.Host.http

便于接口调试的一个文件,可以通过这个文件进行接口调式,也比较方便,不想用也可以删掉
在这里插入图片描述

(6)、Program.cs

项目的入口启动文件,里面内容先不展开,后续章节再深入分析下。

(7)、WeatherForecast

默认演示项目的返回实体定义

三、添加Hello,World

项目接口分析完,再次回到本节的主要目标:增加一个hello的接口,接口返回内容为“Hello,World!”

我们参照默认代码(WeatherForecast)的示例,开始依葫芦画瓢,非常简单

(1)增加HelloController.cs文件

在Controllers目录下,新建一个HelloController.cs的类
在这里插入图片描述
新建完成后,可以在目录下看到
在这里插入图片描述

(2)、修改HelloController.cs文件

修改后的代码如下

[ApiController]
[Route("[controller]")]
public class HelloController : ControllerBase
{
    [HttpGet(Name = "GetHello")]
    public string Get()
    {
        return "Hello,World!";
    }
}

(3)、运行项目

运行项目后,可以看到,我们的Hello接口出现了
在这里插入图片描述
测试一下:
在这里插入图片描述

可以到看到返回值为"Hello,World!",成功!

总结

本节的目标我们已经完成了,由于我们完全是仿照示例代码的写法,可能大家会有 一些疑问,比如:
在接口前面,我们明明写了接口名称为,[HttpGet(Name = “GetHello”)],为什么接口最终名称却是Hello,Hello的名字究竟怎么来的?和Name = "GetHello"到底有没有关系,我们可以试下:比如改成Greeting,[HttpGet(Name = “GetGreeting”)],看看有无变化?

代码

[ApiController]
[Route("[controller]")]
public class HelloController : ControllerBase
{
    [HttpGet(Name = "GetGreeting")]
    public string Get()
    {
        return "Hello,World!";
    }
}

在这里插入图片描述
可以看到,依旧还是Hello的名字,那么Hello的名字究竟怎么来的?
还有我们如果想把接口改成其他的名称,应该怎么做呢?
还有我们继承ControllerBase,以及[Route(“[controller]”)]属性,又是分别起到什么作用呢?
留下这几个问题,我们下节继续。

敬请期待…

  • 24
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

布庭不语

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值