asp.net - 具有许多参数的 Web API httpget

标签 asp.net rest asp.net-web-api

我正在尝试使用 WEB API 创建我的第一个 REST 服务,以替换我在 Web 表单 asp.net 项目中的一些回发。在 Web 窗体项目中,当我浏览到一个新网页时,我总是会得到一个 ASP.net Application 变量和一个查询字符串值,它们可以帮助我确定要连接到哪个数据库。在这个旧应用程序中,它连接到几个不同的数据库,这些数据库都具有相同的模式和数据库对象,但每个数据库中的数据不同

我不确定将这些变量传递给 REST 服务的最佳方式,或者它们是否应该成为路由或其他方法的一部分。

所以在像下面这样的 REST 方法中

    // GET api/<controller>/5
    public string GetCategoryByID(int id)
    {
        return "value";
    }

我可以获得类别 ID 并将其传递到我的数据库层,但我还需要上面提到的两个变量。我将需要在每次调用我的 REST api 时获取这些变量,以便访问适当的数据库。我应该使用类似下面的东西吗:

    // GET api/<controller>/5
    public string GetCategoryByID(int id, string applicationEnvironment, string organization)
    {
        return "value";
    }

或者他们应该像这样成为路线的一部分:

api/{appEnvironment}/{organization}/{controller}/{id}

这似乎是一个简单的问题,但我很难找到解决方案。

最佳答案

我最终通过 httpget 调用传递了额外的参数。除非我得到一些额外的反馈,否则我可能会遵循这种模式。

    [HttpGet]
    public Company[] GetProgramCompanies(int id, [FromUri] string org, [FromUri] string appEnvir)
    {
        DataLayer dataAccess = new DataLayer(Utilities.GetConnectionString(org, appEnvir));
        IEnumerable<BudgetProgramCompanyListing> companies = dataAccess.GetProgramCompaniesListing(id).OrderBy(o => o.Company_Name);

        Company[] returnComps = new Company[companies.Count()];
        int count = 0;

        foreach (BudgetProgramCompanyListing bpc in companies)
        {
            returnComps[count] = new Company
            {
                id = bpc.Company_ID,
                name = bpc.Company_Name
            };
            count++;
        }

        return returnComps;
    }

使用此 url 调用上述服务:

api/programcompanies/6?org=SDSRT&appEnvir=GGGQWRT

关于asp.net - 具有许多参数的 Web API httpget,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18221263/

相关文章:

java - 通过 JSON Rest Server (Jersey) 和 Android 进行通信

c# - 使用 MultipartFormDataStreamProvider 和 ReadAsMultipartAsync

c# - signalR、IE10 和 fiddler 的奇怪行为

c# - 在运行时在哪里存储密码?

api - REST 等基于 Web 的 API 与 TLS/SSL 之间有何关系?

c# - Office 365 REST API

asp.net - 在 .NET 中编写大型多步骤表单的最有效方法?

c# - 更新 webservice,而不更新 web.config

asp.net-mvc - 该类型不可分配给服务 autofac

asp.net-web-api - .Net Web API IActionFilter.OnActionExecuted 返回类型