前言#
我们在使用ASP.NET Core WebApi
时它支持使用指定的输入和输出格式来交换数据。输入数据靠模型绑定的机制处理,输出数据则需要用格式化的方式进行处理。ASP.NET Core
框架已经内置了处理JSON
和XML
的输入和输出方式,默认的情况我们提交JSON
格式的内容,它可以自行进行模型绑定,也可以把对象类型的返回值输出成JSON
格式,这都归功于内置的JSON
格式化程序。本篇文章我们将通过自定义一个YAML
格式的转换器开始,逐步了解它到底是如何工作的。以及通过自带的JSON
格式化输入输出源码,加深对Formatter
程序的了解。
自定义开始#
要想先了解Formatter
的工作原理,当然需要从自定义开始。因为一般自定义的时候我们一般会选用自己最简单最擅长的方式去扩展,然后逐步完善加深理解。格式化器分为两种,一种是用来处理输入数据格式的InputFormatter
,另一种是用来处理返回数据格式的OutputFormatter
。本篇文章示例,我们从自定义YAML
格式的转换器开始。因为目前YAML
格式确实比较流行,得益于它简单明了的格式,目前也有很多中间件都是用YAML
格式。这里我们使用的是YamlDotNet
这款组件,具体的引入信息如下所示
<PackageReference Include="YamlDotNet" Version="15.1.0" />
YamlInputFormatter#
首先我们来看一下自定义请求数据的格式化也就是InputFormatter
,它用来处理了请求数据的格式,也就是我们在Http请求体
里的数据格式如何处理,手下我们需要定义个YamlInputFormatter
类,继承自TextInputFormatter
抽象类