欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

.net core 杂记:WebAPI的XML请求和响应

程序员文章站 2022-05-18 15:37:03
一般情况下,restfult api 进行数据返回或模型绑定,默认json格式会比较常见和方便,当然偶尔也会需要以XML格式的要求 对于返回XML,普通常见的方式就是在每个aciton方法进行诸如XmlFormatter此类的序列化处理, 而对于接收XML,则是进行一些额外的XML解析操作或反序列化 ......

一般情况下,restfult api  进行数据返回或模型绑定,默认json格式会比较常见和方便,当然偶尔也会需要以xml格式的要求

对于返回xml,普通常见的方式就是在每个aciton方法进行诸如xmlformatter此类的序列化处理,

而对于接收xml,则是进行一些额外的xml解析操作或反序列化处理。

下面记录和学习较为便捷的webapi的xml请求和响应处理使用,不喜勿喷,有错请指教。

.net core 版本:2.2

添加xml格式支持

1、安装 microsoft.aspnetcore.mvc.formatters.xml nuget 包

2、再startup.configureservices 中调用 addxmlserializerformatters 来配置对 system.xml.serialization.xmlserializer的 实现。

public void configureservices(iservicecollection services)
{
    services.addmvc().setcompatibilityversion(compatibilityversion.version_2_2).addxmlserializerformatters();
}

响应xml数据

想再action层面、controller层面或全局范围内指定特定操作响应xml格式,只需添加 [produces] 过滤器,会自行处理成xml格式响应,无需再进行其他繁杂的处理步骤

如下指定action方法响应xml格式:

[httpget("getstudent/{id}")]
[produces("application/xml")]
public student getstudent(int id)
{
    var obj = new student
    {
        age = 12,
        name = "123123"
    };
    return obj;
}

将直接返回如下:

.net core 杂记:WebAPI的XML请求和响应

 xml请求

 xml格式数据请求则使用[consumes]

 如下代码:

下面示例以xml格式请求,程序会自动解析并绑定student模型类,返回此对象的json格式(webapi 默认返回的格式)

[httppost("poststudent")]
[consumes("application/xml")]
public student poststudent(student obj)
{
    return obj;
}

结果如下:

.net core 杂记:WebAPI的XML请求和响应