具有自定义标头请求值c#的API路由

时间:2018-11-21 04:43:30

标签: c# asp.net routes

我正在对整个后端程序包进行服务升级,以全面添加响应。

这会影响后端服务以及该服务的所有自定义客户端应用程序。因此,其想法是在部署时不要破坏它。

因此,我需要路由两个不同的API调用而不修改URL调用。 这个想法是创建一个自定义标头作为请求的一部分,并带有一个true / false值。

因此,示例API调用是此路由“ {base} / {source} / person / id”

这将返回一个基本人物对象。

但是,新要求是返回该人员对象,并在新对象内添加消息列表。

所以从这个

return person

return genericObjectWithMessages

其中genericObjectWithMessages包含并排的list和person对象的属性。

这可能吗?

[Route("{ID}")]
    [HttpGet]
    [HttpHeadAttribute("retrievemessages")=false]
    public async Task<Person> RetrieveEntity(string id, string source)
    {
        return Person;
    }

    [Route("{ID}")]
    [HttpGet]
    [HttpHeadAttribute("retrievemessages")=true]
    public async Task<genericObjectWithMessages> RetrieveEntity(string id, string source)
    {
        return genericObjectWithMessages
    }
public GenericObjectWithMessages
    {
        Person aPerson {get;set;}
        List<message> messages {get;set;}
    }

P.S。这是根据不同版本等提出的要求,但未实现API版本控制。

0 个答案:

没有答案