如何在asp.net MVC中以编程方式设置SODA API端点

时间:2015-05-14 12:13:20

标签: asp.net-mvc socrata soda

我正在开发一个由socrata托管的开放数据的应用程序,使用以下链接中的信息http://dev.socrata.com/consumers/examples/creating-an-application-with-asp-dotnet.html 您需要在代码中指定API端点。

private const string _APIEndPoint4x4 = “4tka-6guv”;

假设数据集中有5000条记录,它将列出应用程序中的所有数据。  但您可以通过登录socrata并保存来过滤此数据来更改终点。例如,我们可以过滤2015年的数据,这将给我们100条记录。当您下次运行应用程序时,它将只显示100条记录(我们不需要在代码中更改API端点)。 我在Socrata中经历了Soql查询方法,它说你可以用这样的条件设置api端点

https://soda.demo.socrata.com/resource/4tka-6guv?$where=magnitude > 3.0

我的问题是如何在我的应用程序中使用它? 我试过了

private const string _APIEndPoint4x4 = "4tka-6guv?$where=magnitude > 3.0”;

但它会出现以下错误

  

提供的resourceId不是有效的Socrata(4x4)资源标识符。

3 个答案:

答案 0 :(得分:2)

您可能会发现查看PDF指南中提到的SODA.NET SDK自述文档中的文档非常有用: https://github.com/CityofSantaMonica/SODA.NET

要过滤数据,您可以使用以下代码:

var dataset = client.GetResource<MyClass>("4tka-6guv");
var soql = new SoqlQuery().Select("column1", "column2")
                      .Where("magnitude > 3.0");

var results = dataset.Query<MyOtherClass>(soql);

答案 1 :(得分:0)

该PDF中包含有关如何使用SoQL过滤器的一些详细信息和代码示例。尝试一下,让我知道这是否有帮助!

答案 2 :(得分:0)

作为其他答案的后续行动......

每个数据集都有一个与之关联的资源标识符,也称为 Socrata 4x4 。在您的示例中,资源标识符 4tka-6guv 。它总是4个字母数字字符,短划线,然后是4个字母数字字符。因此名称​​ Socrata 4x4

错误消息:

  

提供的resourceId不是有效的Socrata(4x4)资源标识符。

表示您在代码中提供的resourceId格式不正确。这一行:

private const string _APIEndPoint4x4 = "4tka-6guv?$where=magnitude > 3.0”;

提供不仅仅是Socrata 4x4 - 你也有一个查询参数($where=magnitude > 3.0)。

现在,在Socrata中获取对数据集的引用,la

var dataset = client.GetResource<MyClass>("4tka-6guv");

要求仅使用 Socrata 4x4

这不会下载所有行,而只是为您提供一个对象来执行其他查询。要实际获取一些数据,请构建一个SoqlQuery对象,以便传递到之前获得的Query引用上的dataset方法。

Adrian Laurenzi (通过SODA.NET README)正在展示。