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

How to set SODA API end points programatically in asp.net MVC

我正在使用下面的信息开发一个由 socrata 托管的开放数据的应用程序 link 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”;

但是报如下错误

The provided resourceId is not a valid Socrata (4x4) resource identifier.

该 PDF 中的第 14 页包含有关如何使用 SoQL 过滤器的一些详细信息和代码示例。试试看,如果有帮助请告诉我!

您可能会发现查看 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);

作为对其他答案的跟进...

每个数据集都有一个与之关联的资源标识符,也称为Socrata 4x4。在您的示例中,资源标识符4tka-6guv。它始终是 4 个字母数字字符、一个破折号,然后是另外 4 个字母数字字符。因此得名 Socrata 4x4

错误信息:

The provided resourceId is not a valid Socrata (4x4) resource identifier.

表示您在代码中提供的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 对象以传递到您之前获取的 dataset 引用上的 Query 方法。

这就是 Adrian Laurenzi(通过 SODA.NET README)展示的内容。