2015-05-14 7 views
0

Я разрабатываю приложение с открытыми данными, размещенными в компании socrata, используя информацию из приведенной ниже ссылки. http://dev.socrata.com/consumers/examples/creating-an-application-with-asp-dotnet.html Как вам вообще нужно указать конечную точку API в коде.Как установить конечные точки API SODA программно в asp.net MVC

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

Предположим, что в наборе данных имеется 5000 записей, в нем будут перечислены все данные в ваших приложениях. Но вы можете изменить конечную точку, отфильтровывая эти данные, выполнив вход в socrata и сохраните ее. Например, мы можем фильтровать данные, скажем, с 2015 года, что даст нам 100 записей. Когда в следующий раз вы запустите приложение, оно отобразит всего 100 записей (нам не нужно менять конечную точку API в коде). Я прошел через методы запросов Soql в Socrata, которые говорят, что вы можете установить конечные точки апи с условиями, как этот

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) идентификатор ресурса.

ответ

0

в продолжение к другим ответам ...

Каждый набор данных имеет идентификатор в ресурс, связанный с ним, также известный как Socrata 4x4. В вашем примере идентификатор ресурса: 4tka-6guv. Это всегда 4 алфавитно-цифровых символа, тире, а затем еще 4 буквенно-цифровых символа. Отсюда и название Socrata 4x4

Сообщение об ошибке:

Предоставленный RESOURCEID не является допустимым Socrata (4x4) идентификатор ресурса.

Указывает, что ресурсId предоставлен в коде не в правильном формате. Эта линия:

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

обеспечивает более , чем просто 4x4 Socrata - у вас есть параметр запроса там, а также ($where=magnitude > 3.0).

Теперь, получив ссылку на набор данных в Socrata, а-ля

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

требует использования только Socrata 4x4.

Это не загружает все строки, а просто предоставляет вам объект для выполнения дополнительных запросов. Чтобы получить некоторые данные, создайте объект SoqlQuery, чтобы перейти к методу Query по ссылке dataset, которую вы получили ранее.

Это то, что Adrian Laurenzi (в порядке SODA.NET README).

0

Page 14 в этом PDF-документе содержатся некоторые детали и примеры кода о том, как использовать фильтры SoQL. Попробуйте это и дайте мне знать, если это поможет!

+0

Насколько я понимаю, эти методы выполняются после извлечения всех записей данных из портала данных. Или я ошибаюсь? Если нет, как я могу получить отфильтрованные записи данных с портала данных? – Nachikethas

2

Вы могли бы найти это полезно взглянуть на документацию в README для SODA.NET SDK, упомянутых в PDF руководстве: 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);