首页
学习
活动
专区
圈层
工具
发布

用ASP.NET Core 2.1 建立规范的 REST API -- HATEOAS

为了让ASP.NET Core Web API 支持HATEOAS, 得需要自己手动编写代码实现....接下来是自定义的标识,也可能还包括额外的值,这里我是用的是公司名,随后是hateoas表示返回的响应里面要包含链接。 最后是一个“+json”。...返回的是406,Not Acceptable。 这是因为ASP.NET Core的格式化器并不认识我们这个自定义的媒体类型。 在Startup里面添加这两句话以支持这个媒体类型: ?...然后在两个Action里,我都是用的是application/json这个媒体类型,实际上这个项目里目前大部分的API我都是用的是application/json。...也许在ASP.NET MVC或者一些web网站可以自适应这种变化,如果这些网站的js,html等是从服务器端生成的;但是大多数的时候,其实很难实现这种自适应变化。

1.2K40
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    用ASP.NET Core 2.1 建立规范的 REST API -- 保护API和其它

    这几种方案里Basic提供的保护程度/级别最低, 而Negotiate最高/强. ASP.NET Core可选择的认证提供商就很多了, 例如ASP.NET Core Identity....Base64字符串的组合, 也是用点(.)分开并进行了签名, 如下图: ?  ...下面我们需要一个可以生成JWT token的节点, 针对本文我就在本项目里建立这个节点吧: ?...view=aspnetcore-2.1&tabs=visual-studio#require-https), 它建议ASP.NET Core web应用都应该调用HTTPS重定向中间件, 这样就可以把所有的...ASP.NET Core有一个第三方库Swashbuckle,它支持Swagger,但是只支持版本2,版本2有个重要的缺陷就是不支持Action重载,之前HATEOAS的文章里提到过我们需要使用这种重载

    1.7K20

    用ASP.NET Core 2.1 建立规范的 REST API -- 翻页排序过滤等

    (从ASP.NET Core 2.0 迁移至 ASP.NET Core 2.1: https://docs.microsoft.com/en-us/aspnet/core/migration/20_21...在ASP.NET Core里,我要使用Linq来动态组建一个查询的表达式(IQueryable,可以创建表达式树),它是延迟执行的,直到各种条件都判断完了并组建出最终的查询表达式之后才去执行(查询数据库...我使用了这个参数类代替了之前的pageIndex和pageSize参数,因为ASP.NET Core足够智能,可以把这两个参数解析到这个类里面。 下面测试一下: ?...用程序来说就是,一个字符串“Rank asc”要映射成一个集合,而集合元素的类型有两个属性:Entity Model的属性名和排序的方向。 所以先把集合里这种元素的类建立出来: ?...该方法可以在Startup里面调用,从而注册到ASP.NET Core的服务容器里: ? 然后再次修改CountryRepository: ?

    1.6K10

    用ASP.NET Core 2.0 建立规范的 REST API -- DELETE, UPDATE, PATCH 和 Log

    由于这种原因,PUT用的就比较少,不可能为了更新对象中的一个属性而把对象所有的属性值都传递回去。 所以PATCH(局部更新)就应用的比较广泛了。 PUT不具有安全性,因为每次执行PUT都会改变资源。...验证 为了进行输入验证(不验证输出),我们需要做以下三方面工作: 定义验证规则 检查验证规则 把验证错误信息发送给API的消费者 之前的文章也提到的ASP.NET Core里面定义验证规则的方式: Data...由于ASP.NET Core并没有内置的帮助方法可以返回422和验证错误信息,所以我们先建立一个类用于返回 422 和验证错误信息,它继承于ObjectResult: ?...最后还要为ASP.NET Core配置FluentValidation,在Startup的ConfigureServices方法里: ?...支持ASP.NET Core的第三方Log提供商有很多,NLog,Serilog等等。这里我使用Serilog(https://github.com/serilog/serilog)。

    2.4K20

    ASP.NET Core: 全新的ASP.NET !

    背景 最新版本的 ASP.NET 叫做 ASP.NET Core (也被称为 ASP.NET 5)   它颠覆了过去的 ASP.NET。 什么是 ASP.NET Core?...ASP.NET Core 1.0 是一个 ASP.NET 的重构版本,它运行于最新的 .NET Core。...ASP.NET Core 不再只依赖Visual Studio ASP.NET Core 的跨平台,让它不再只依赖 Visual Studio,开发者和设计师们可以在自己喜欢的环境上工作。...另外,ASP.NET Core 也会包含一个叫做 Kestrel 的 Web 服务器,它建立在 libuv 上,主要用于 iOS 和 Linux 操作系统。...以上 ASP.NET Core 1.0 的新特性和新概念的介绍,是为了更好的帮助我们使用 ASP.NET Core 进行开发,同时在开发过程中,我们还可以借助一些好的工具来提高开发效率,并减少代码量,如

    13.7K101

    ASP.NET Core管道详解: ASP.NET Core应用是如何启动的?

    我们知道ASP.NET Core应用的请求处理管道是由一个IServer对象和IHttpApplication对象构成的。...[本文节选自《ASP.NET Core 3框架揭秘》第13章, 更多关于ASP.NET Core的文章请点这里] 目录 一、配置选项:GenericWebHostServiceOptions 二...CancellationToken cancellationToken); public Task StopAsync(CancellationToken cancellationToken); } 三、应用启动流程 由于ASP.NET...Core应用是由GenericWebHostService服务承载的,所以启动应用程序本质上就是启动这个承载服务。...此后,服务器绑定到指定的地址监听抵达的请求,并为接收的请求创建出对应的HttpContext上下文,后续中间件将在这个上下文中完成各自对请求的处理任务。

    1K31

    ASP.NET Core管道深度剖析(4):管道是如何建立起来的?

    在《管道是如何处理HTTP请求的?》中,我们对ASP.NET Core的请求处理管道的构成以及它对请求的处理流程进行了详细介绍,接下来我们需要了解的是这样一个管道是如何被构建起来的。...由于依赖注入被广泛应用到了ASP.NET Core的请求处理管道中,对于前面三个对象,会先以服务的形式注册到DI容器中,那么WebHost只需要利用ServiceProvider对象根据对应的服务接口得到这三个对象...四、WebHostBuilder 作为应用宿主的WebHost创建了ASP.NET Core的请求处理管道,而WebHost又是由它的工厂WebHostBuilder创建的。...综上所述,我们已经对ASP.NET Core应用如何利用WebHostBuilder最终构建出请求处理管道的流程以及管道自身处理请求的流程具有了一定的了解,现在我们来做一个简单的总结。...上面所述的所有内容都是针对我们自定义的模拟管道来介绍的,虽然我们对这个模拟管道做了极大的简化,但是它依然体现了ASP.NET Core管道处理请求的真实流程,而且真实管道的创建方式也与模拟管道基本一致。

    1.1K60

    用ASP.NET Core构建可检测的高可用服务--学习笔记

    本次分享会讲解如何让 ASP .NET Core 应用与现代化云基础设施完美融合,提升服务的可检测性,保障线上系统的可用率。...服务可用性检测 服务性能测试 .NET Core 的可检测性支持 日志框架(Logging) 诊断框架(Diagnostics) 健康检查框架(HealthChecks) .NET Core 的日志框架...-- Microsoft.Extensions.Logging .NET Core 的日志框架特性 .NET Core 的日志框架适用场景 用户请求日志 异常日志记录 外部接口的调用日志 复杂组件的调试警告输出....NET Core 的诊断框架特性 事件发布订阅的设计模型 支持任意对象追踪 支持动态开关 支持监听筛选 .NET Core 的诊断框架适用场景 日志组件无法满足需求时 期望对组件内部执行过程跟踪时...期望特定事件发生时,在外部修改组件对象 .NET Core 的诊断框架的应用案例 HttpClient MySql.Data CAP 组件 SkyWalking .NET ASP .NET Core 的健康检查框架

    76210

    ASP.NET Core 中的 ServiceProvider

    前言# 在 ASP.NET Core 中,微软提供了一套默认的依赖注入实现,该实现对应的包为:Microsoft.Extensions.DependencyInjection,我们可以通过查看其对应的开源仓库看一下它的具体实现...但是稍微有点工作经验的朋友就会发现上述的实现是有很多潜在问题的。...,我们需要引入一个新的集合,这个新的集合是用于存储我们相应的实例对象,在注册的时候我们只记录注册类型,在需要访问到相应的服务时,我们只需要在这个实例集合列表中访问,如果发现我们需要的服务还未被实例化,那我们再进行实例化...对于用哪种数据结构来存,我们可以采用多种数据结构,我这里仍然采用字典来存储,示例代码如下所示: Copy public class ServiceLocator : IServiceLocator {...,但是对于有参构造函数的服务注册,我们定义的 服务提供者就不满足的,因为上述的反射方式是不支持有参构造函数的。

    2.2K20

    【asp.net core 系列】14 .net core 中的IOC

    IOC描述的是一种设计模式,而DI是一种行为。 2. 使用asp.net core的默认IOC 在之前的ASP.NET 框架中,微软并没有提供默认的IOC支持。...在最新的asp.net core中微软提供了一套IOC支持,该支持在命名空间: Microsoft.Extensions.DependencyInjection 里,在代码中引用即可。...AutoFac 使用 理论上,asp.net core的IOC已经足够好了,但是依旧原谅我的贪婪。如果有二三百个业务类需要我来设置的话,我宁愿不使用IOC。因为那配置起来就是一场极其痛苦的过程。...因为asp.net core 版本3更改了一些逻辑,AutoFac的引用方式发生了改变,现在不介绍之前版本的内容,以3为主。...总结 这一篇简单介绍了如何在Asp.net Core中启用IOC支持,并提供了两种方式,可以说是各有优劣。小伙伴们根据自己需要选择。后续会为大家详细深入AutoFac之类IOC框架的核心秘密。

    1.5K20
    领券