.net core 雜記:WebAPI的XML請求和響應

通常狀況下,restfult api  進行數據返回或模型綁定,默認json格式會比較常見和方便,固然偶爾也會須要以XML格式的要求web

對於返回XML,普一般見的方式就是在每一個aciton方法進行諸如XmlFormatter此類的序列化處理,json

而對於接收XML,則是進行一些額外的XML解析操做或反序列化處理。api

下面記錄和學習較爲便捷的WebAPI的XML請求和響應處理使用,不喜勿噴,有錯請指教。restful

.net core 版本:2.2app

添加XML格式支持

一、安裝 Microsoft.AspNetCore.Mvc.Formatters.Xml NuGet 包post

二、再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格式響應,無需再進行其餘繁雜的處理步驟spa

以下指定Action方法響應XML格式:.net

[HttpGet("getstudent/{id}")]
[Produces("application/xml")]
public Student GetStudent(int id)
{
    var obj = new Student
    {
        Age = 12,
        Name = "123123"
    };
    return obj;
}

將直接返回以下:rest

 XML請求

 XML格式數據請求則使用[Consumes]

 以下代碼:

下面示例以XML格式請求,程序會自動解析並綁定Student模型類,返回此對象的json格式(webapi 默認返回的格式)

[HttpPost("poststudent")]
[Consumes("application/xml")]
public Student PostStudent(Student obj)
{
    return obj;
}

結果以下:

相關文章
相關標籤/搜索