gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 01:59:06 27 4
gpt4 key购买 nike

我正在尝试使用 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/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com