首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

使用ASP.NET Core 3.x 构建 RESTful API - 3.1 资源命名

但是这样设计的话,对API消费者来说非常不友好,因为不能直观看出来它到底代表是什么资源,可能是user,也可能是university。...这里有6个地方比较关键,我们挨个看一下: RESTful API 或者其它Web APIController都应该继承于 ControllerBase 这个类(点此查看详细官方文档),而不是Controller...Controller类继承于ControllerBase,Controller添加了对视图支持,因此它更适合用于处理 MVC Web 页面,而不是 Web API。...但是如果你Controller需要同时支持MVC Web页面和Web API,那么这时候就应该继承于Controller这个类。...这个属性是应用于Controller,它其实并不是强制,但是它提供了一些帮助,使得Web API开发体验更好。详细教程请点击 [ApiController]官方文档。

96910

BCVP开发者说第4期:Remember.Core

沉静岁月,淡忘流年 1项目简介 Remember.Core 一个轻量 Web 应用框架, 具有优雅、高效、简洁、富于表达力等优点。...Remember.Core目前仅提供了插件框架,若你需要实现一个Web插件系统,或许 Remember.Core 是不错参考,这也是本项目的目的,作为 插件系统实现参考。...域共享机制 - 免去重复加载 简单易用 - PluginFinder、PluginManager 或许你仅仅需要它们 一套完整 插件生命周期 - 需要时做你想做 动态扩展 WebAPI - 每个插件都是一个...插件其他配置 支持 动态扩展 WebAPI,和普通WebAPI 项目相同,直接创建 Controller 即可 [Route("api/plugins/[controller]")] [ApiController...,如果你想要实现一个Web插件框架,你可以参考本框架代码。

45630

.NET 应用如何优雅做功能开关(Feature Flag)

安装功能管理库 以我博客系统为例,我应用是 ASP.NET MVC / Web API类型,我需要添加包为 Microsoft.FeatureManagement.AspNetCore。...))) { // 执行代码 } ASP.NET 项目里,最方便就是通过构造函数获取 IFeatureManager 实例 public class HomeController : Controller...其实 Microsoft.FeatureManagement.AspNetCore 这个包包括了 MVC / Web API 项目所需要用到许多助手功能。可以让我们避免大量 if else。... Controller 级别添加功能开关 还是以我博客系统为例,我 GraphController 只有 EnableWebApi 开关打开时候才响应用户请求,那么本来 if else 判断现在就可以...() { // ... } View 上添加功能开关 先在 _ViewImports.cshtml 添加 taghelper 声明。

98120

《ASP.NET Core 与 RESTful API 开发实战》-- (第9章)-- 读书笔记(下)

接口,该接口并未包含任何成员,主要目的是标识一个类为测试类,并为测试类提供所需要依赖 测试项目中添加一个类 AuthorController_IntegrationTests,该类主要包含了针对...,它能够描述 RESTful API,并为 API 生成人与计算机都容易理解文档 安装 Install-Package Swashbuckle.AspNetCore 接下来, Startup 类...{ Title = "Library API", Version = "v1" }); }); Configure 方法添加 Swagger 中间件和...文档 访问 https://localhost:5001/swagger 可以看到 SwaggerUI,它是 Swagger 文档更友好展示方式 如果不希望文档展示某个 Controller 或其中某个...} 除了手动使用 [ProducesResponseType] 特性列出所有可能返回状态码外,ASP.NET.Core 还提供了 Web API 约定 [ApiConventionMethod(typeof

70610

《ASP.NET Core 与 RESTful API 开发实战》-- (第8章)-- 读书笔记(下)

} launchSettings.json 配置文件也包含了 HTTPS 端口配置 "sslPort": 44304 "applicationUrl": "https://localhost:...HttpsPort { get; set; }// 重定向URL要用到端口号 } } 若要修改重定向选项,则可以 ConfigureServices 方法添加如下代码 services.AddHttpsRedirection...,作用是强制客户端使用 HTTPS 与服务器建立链接,实现方式是响应消息添加 Strict-Transport-Security 消息头,该消息头可以使浏览器接下来指定时间内,强制当前域名只能通过...}); 之所以应该在正式环境中使用 HSTS,是因为 HSTS 配置会被浏览器缓存,因此不建议开发环境中使用 HSTS 8.4 数据保护 Web 应用程序通常需要存储安全敏感数据,ASP.NET...(); 之后,需要位置,将 IDataProtectionProvider 接口注入即可 namespace WebApplication1.Controllers { [Route("api

48020

Asp.Net Core EndPoint 终结点路由工作原理解读

还是跟往常一样,打开电脑使用强大Google 和百度搜索引擎查阅相关资料,以及打开Asp.net core 3.1 源代码进行拜读,同时终于实践及测试对EndPoint 有了不一样认识,说到这里更加敬佩微软对...我先来提出以下几个问题: 1.当访问一个Web 应用地址时,Asp.Net Core 是怎么执行到Controller Action呢?2.Endpoint 跟普通路由又存在着什么样关系?...DefaultEndpointRouteBuilder 终结点路由构建者对象,该对象存储了Endpoint集合数据;同时把终结者路由集合数据存储了routeOptions ,并注册了EndpointMiddleware...当访问一个Web 应用地址时,Asp.Net Core 是怎么执行到Controller Action呢?...答:程序启动时候会把所有的Controller Action 映射存储到routeOptions 集合,Action 映射成Endpoint终结者 RequestDelegate 委托属性,

88720

从头编写 asp.net core 2.0 web api 基础框架 (3)

Github源码地址:https://github.com/solenovex/Building-asp.net-core-2-web-api-starter-template-from-scratch...之前我介绍完了asp.net core 2.0 web api最基本CRUD操作,接下来继续研究: IoC和Dependency Injection (控制反转和依赖注入) 先举个例子说明一下: ?...这样做呢,也不利于进行单元测试,单元测试时候无法提供一个Mock(Mock就是测试对于某种不易构建对象,建立一个虚拟版本,以方便测试)版本MyLogger,因为我们使用是具体类。...asp.net core里面呢,Ioc和依赖注入是框架内置,这点和老版本asp.net web api 2.2不一样,那时候我们得使用像autofac这样第三方库来实现Ioc和依赖注入。...{ [Route("api/[controller]")] public class ProductController : Controller { private

1.5K70

ASP.NET Core分布式项目实战(oauth2 + oidc 实现 server部分)--学习笔记

,现在它是自己登录自己使用,我们需要把它登录信息返回给第三方 添加 identityserver4 引用 startup using IdentityServer4; 按照之前文章添加 Config.cs...) { return new List { new ApiResource("api...app.UseMvc(routes => { routes.MapRoute( name: "default", template: "{controller...; }); } 我们已经把 IdentityServer4 添加到 MVC 程序,接着需要在 Controller 实现这个逻辑 首先注释 AccountController 原先登录逻辑...,我们需要验证用户名和密码,前面我们 Config 添加了 TestUser,它被放在 TestUserStore ,可以通过依赖注入引用进来,有了它之后就可以登录时候拿到用户名和密码 private

66920

【asp.net core】实现动态 Web API

上图中 Demo 项目是 asp.net core 3.1 版本 Web API 项目,用于演示我们简易动态 Web API,而 SimpleDynamicWebAPI .net standard...2.0 项目则是我们简易动态 Web API 项目。...要实现动态 Web API,首先要做第一件事情就是要有一个规则,来判定一个类是不是动态 Web API。...举个栗子,加入你写了一个 Web API,项目又配置了 swagger,而且你又想 swagger 不显示这个 Web API 的话,那么可以 Action 上加上: [ApiExplorerSettings...结语: 我们总算实现了一个非常简易动态 Web API,也相当于又造了一遍轮子,但在这造轮子过程,我们了解到了其实现原理,假如以后发现 abp vnext 等框架动态 Web API 满足不了我们时候

2.5K10

dotNET Core 3.X 使用 Web API

现在 Web 开发大多都是前后端分离方式,后端接口正确使用显得尤为重要,本文讲下在 dotNET Core 3.X 下使用 Web API 。...Rider 比较好用(调试和智能提示), Rider 创建 Web API 项目: ?...Web API 不需要功能,如下图: ?...我们实际开发,通常会自定义添加一个所有 Controller基础类,一些通用功能可以放到基类,比如,对 AutoMapper 注入,代码如下: public class BaseController...最后 本文只是涉及了 Web API 中比较常用一些功能点,限于篇幅,每个点并没有写非常深入,也较少涉及原理,但我们在学习过程,除了实现效果外还应该深入去了解其中细节和原理。

1.5K30

asp.net core上使用Redis探索(2)

>,我介绍了一个微软官方实现Microsoft.Extensions.Caching.Redis类库,这次,我们使用微软官方Redis客户端...属性就是我们一般.config文件配置redis连接语句地方,随后我们会讲到应用。...string.Empty; } 可以看到,这个属性是可以设置为空,那么它到底是什么呢?这个就是我们存储redis时候前缀了,我们可以这么这是Demo, 或者Demo:test等。...但是我们大型项目中使用redis队列RedisCache类并没有实现,但是,要知道整个asp.net-core都是可拓展,我们可以基于RedisCache类再实现一个pub/sub方法用来做消息队列...("api/[controller]")] 3 public class HomeController : Controller 4 { 5 // 通过构造函数注入,内置IOC容器实例化了之后

20320

SpringMVCHelloWord

1、Spring Web MVC是什么 Spring Web MVC是一种基于Java实现了Web MVC设计模式请求驱动类型轻量级Web框架,即使用了MVC架构模式思想,将web层进行职责解耦...,基于请求驱动指就是使用请求-响应模型,框架目的就是帮助我们简化开发,Spring Web MVC也是要简化我们日常Web开发。...; √能简单进行Web单元测试; √支持灵活URL到页面控制器映射; √非常容易与其他视图技术集成,如Velocity、FreeMarker等等,因为模型数据不放在特定API里,而是放在一个...4、创建项目 1)Eclipse创建一个Dynamic Web Project,如图所示 2)加入jar包 1 Springjar包(如果你不知道加哪几个jar包,你就全加上,没有问题,我就是...X情况,如下图所示 可能是没有加入命名空间,如下图所示,以此类推 4)修改web.xml文件 web.xml添加一个Spring MVCservlet即可 <!

11810

ASP.NET Core 项目中使用 MediatR 实现中介者模式

同时,对于仓储(Repository)领域分层是置于 Infrastructure(基础架构层)还是位于 Domain(领域层),每个人都会有自己理解,这里我还是更倾向于放在 Domain 层更符合其定位...Sample.ApiAPI 接口层,这层就很简单了,主要是通过 API 接口暴露出我们基于领域对外提供各种服务。   整个示例项目的分层结构如下图所示。 ?   ...而对于 Sample.Api 这个 Web API 项目,因为需要通过依赖注入方式来使用我们基于 MediatR 所构建出各种服务,所以这里我们还要添加 MediatR.Extensions.Microsoft.DependencyInjection...当我们完成了对于请求处理代码后,就可以 controller 中提供用户访问入口。...而在这个示例项目中,我们主要是 Sample.Domain、Sample.Application 以及我们 Web Api 项目中使用到了 MediatR,因此,我们需要将这三个项目中使用到 MediatR

86610
领券