【问题标题】:Restful URI with multiple parameters for GET verb带有 GET 动词的多个参数的 Restful URI
【发布时间】:2023-03-31 15:17:01
【问题描述】:

我想用 GET 动词调用一个 RESTful API 以从 SaaS 服务获取响应。 API 公开多个对象来构造请求 uri。如何构造具有适当值的uri来传递?我正在使用 .Net 4.5 客户端和 c# 来调用此 API。

这是预期的请求 URI 模板 GET v1/Times/{SiteId}/{OrderMode}/{OrderSource}/{MenuId}

我需要在 uri 模板上传递适当的值,例如 SiteId=1、OrderMode=P、OrderStatus=1 和 MenuId=1

【问题讨论】:

    标签: c# rest asp.net-mvc-4 c#-4.0 restful-url


    【解决方案1】:

    您可以相当容易地构造一个字符串并转换为 URI,如下所示:

    const string getUriFormatter = "v1/Times/{0}/{1}/{2}/{3}";
    
    uri ConstructGetUri(int siteId, char orderMode, int orderStatus, int menuId)
    {
        return new Uri(string.Format(getUriFormatter, siteId, orderMode, orderStatus, menuId), UriKind.RelativeOrAbsolute);
    }
    

    【讨论】:

    • 感谢您的回复。但是,这与 V1/Times/1/P/1/1 相同,其中 SiteId=1、OrderMode=P、OrderStatus=1 和 MenuId=1。我尝试了这个,API 给出了找不到路径之类的错误。如果我的理解在任何地方有误,请告诉我。
    • 哦,所以您是说您有一个完整的 URI,其中包含您认为正确的值,并且 API 正在返回 404 响应?如果是这种情况,您要么有错误的 URI,要么没有时间可用于该特定的值组合。在后一种情况下,404 是正确的 HTTP 响应。这个 API 没有办法获取这些参数的现有值吗?
    • 谢谢马特。如果这是您提到的其中一种情况,请让我就此 404 错误与服务所有者联系。再次感谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-04
    相关资源
    最近更新 更多