Для разработчиков

Данный раздел предназначен для сторонних разработчиков. Здесь публикуются материалы, которые могут помочь при разработке сторонних клиентских программ и сервисов.

StreetJournal API (Level 2)

Получить список проблем в заданном радиусе от указанной точки.
url: http://www.streetjournal.org/api2/issuelist
Параметры
user email пользователя, указанный им при регистрации на портале
pswd пароль
latitude широта
longitude долгота
radius

радиус окружности в метрах (если отсутствует, то по умолчанию 1000 метров)

status Перечень статусов через запятую (необязателен)
Кодировка
Кодировка запроса UTF-8
Content-type ответа text/xml;charset=UTF-8
Типичный ответ

<Response> <Item Status="1" Id="17813" Name="Яма на дороге" Lat="58.00104429952269" Lng="56.24918377026918" Dt="15.09.2010 19:54:12" Text="Очень большая яма на дороге. Я попал туда левым колесом" Author="Andr" Address="Россия, Пермский край, Пермь, Комсомольский проспект, 59/1" Vote="1" Region="Свердловский район" Dt="10.06.2010 17:44:46" isSelf="true">

<Photos>

<url value="http://www.streetjournal.org/commentimage?id=152"/>

<url value="http://www.streetjournal.org/commentimage?id=359"/>

<url value="http://www.streetjournal.org/commentimage?id=360"/>

</Photos></Item>..</Response>

Комментарий
Поле Status может иметь одно из следующих значений:
  • 1 - проблема открыта
  • 2 - проблема принята к исполнению
  • 3 - проблема закрыта
  • 4 - проблема в архиве

Поле Dt определяет дату и время в формате dd.mm.yy hh:mm:ss. В поле записано время в часовом поясе UTC+0. При использовании требуется локализация.

Если сообщение является собсвенным для пользователя, аттрибут isSelf имеет значение "true", иначе - "false".

Пример вызова
http://[email protected]&pswd=12345&latitude=58.00104429952269&longitude=56.24918377026918&radius=3000
Получить список категорий.
uri: http://www.streetjournal.org/api2/catlist
Параметры
user email пользователя, указанный им при регистрации на портале
pswd пароль
Кодировка
Кодировка запроса UTF-8
Content-type ответа text/xml;charset=UTF-8
Типичный ответ

<Response> <Item Id="52" Group="Безопасность" Name="бесхозные объекты, лица без ОМЖ" Code="15.03"/> ..</Response>

Пример вызова
http:[email protected]&pswd=12345
Получить список комментариев.
uri: http://www.streetjournal.org/api2/commentlist
Параметры
id ИД проблемы
Кодировка
Кодировка запроса UTF-8
Content-type ответа text/xml;charset=UTF-8
Типичный ответ

<Response><Item Avatar="" Id="7741" Text="На Комсомольском проспекте при переходе ул. Революции (от парка Горького к зданию ТГК-9) отсутствует пешеходный светофор. Для определения разрешающего сигнала требуется оборачиваться на светофор, предназначенный для движения в обратную сторону." Dt="12.06.2010 18:51:14">

<Photos><url value="http://www.streetjournal.org/commentimage?id=152"/></Photos>

<SubItems>

<Item Avatar="http://www.streetjournal.org/avatar?id=123" Id="7757" Author="Анатолий Лоскутов" Text="Опора была снесена в следствии ДТП и аккуратно убрана благоустройством" Dt="13.06.2010 07:59:32"><Photos/></Item><Item Avatar="" Id="7826" Dt="17.06.2010 03:47:59"><Photos/></Item>

<Item Avatar="http://www.streetjournal.org/avatar?id=123" Id="8947" Author="Анатолий Лоскутов" Text="Проблема закрыта, перекрёсток обеспечен пешеходным светофором" Dt="30.09.2010 16:30:44"><Photos><url value="http://www.streetjournal.org/commentimage?id=359"/></Photos></Item>

<Item Avatar="http://www.streetjournal.org/avatar?id=123" Id="8948" Author="Анатолий Лоскутов" Text="Проблема закрыта, перекрёсток обеспечен пешеходным светофором" Dt="30.09.2010 16:31:37"><Photos><url value="http://www.streetjournal.org/commentimage?id=360"/></Photos></Item>

</SubItems></Item> ..</Response>

Пример вызова
http://www.streetjournal.org/api2/commentlist?id=128
Получить список организаций, которым отправлено или будет отправлено или может быть отправлено оповещение о проблеме.
uri: http://www.streetjournal.org/api2/noticelist
Параметры
id ИД проблемы
Кодировка
Кодировка запроса UTF-8
Content-type ответа text/xml;charset=UTF-8
Типичный ответ

<Response><Item Name="Управление ГИБДД ГУВД по Пермскому краю" Id="176" State="2"/><Item Name="Первый заместитель главы администрации Свердловского района города Перми (Благоустройство)" Id="349" State="2"/> ..</Response>

Значение State:

0 - Уведомление отправлено

1- Уведомление в процессе отправки

2 - Уведомление может быть отправлено

Пример вызова
http://www.streetjournal.org/api2/noticelist?id=128
Отправка оповещения о проблеме.
uri: http://www.streetjournal.org/api2/notice
Параметры
user email пользователя, указанный им при регистрации на портале
pswd пароль
id ИД проблемы
idnotice идентификатор в листе оповещения
Кодировка
Кодировка запроса UTF-8
Content-type ответа text/xml;charset=UTF-8
Типичный ответ

<Response><Notice Id="2"/></Response>

Пример вызова
http://www.streetjournal.org/api2/notice?[email protected]&pswd=12345&id=128&idnotice=2
Добавить комментарий
uri: http://www.streetjournal.org/api2/addcomment
Параметры
user email пользователя, указанный им при регистрации на портале
pswd пароль
id идентификатор проблемы
parent идентификатор комментария для ответа (необязателен)
text текст коментария
anonymous флаг анонимности (true или false)
vote Проголосовать true или false
photo картинка, в кодировке base64
Кодировка
Кодировка запроса UTF-8
Content-type ответа text/xml;charset=UTF-8
Типичный ответ

<Response><Comment Id="18867"/></Response>

Аттрибут Id содержит идентификатор вновь добавленного комментария.
Добавить фотографию к комментарию
uri: http://www.streetjournal.org/api2/addpicture2comment
Параметры
user email пользователя, указанный им при регистрации на портале
pswd пароль
id идентификатор комментария
photo картинка, в кодировке base64
Кодировка
Кодировка запроса UTF-8
Content-type ответа text/xml;charset=UTF-8
Типичный ответ

<Response><Comment Id="18867"/></Response>

Аттрибут Id содержит идентификатор комментария.
Добавить проблему
uri: http://www.streetjournal.org/api2/addissue
Параметры
user email пользователя, указанный им при регистрации на портале
pswd пароль
latitude широта
longitude долгота
name проблема (кратко)
address адрес
text проблема (подробно)
anonymous флаг анонимности (true или false)
categorymain Идентификатор основной категории
categoryadd идентификаторы дополнительных категорий (Не более двух. Целые числа через разделитель. В качестве разделителя - запятая)
photo картинка, в кодировке base64. Если запрос Multipart, то все приложенные файлы будут добавлены как фото
Кодировка
Кодировка запроса UTF-8
Content-type ответа text/xml;charset=UTF-8
Типичный ответ

<Response><Issue Id="18867"/></Response>

Аттрибут Id содержит идентификатор вновь добавленной проблемы.
Изменить проблему
uri: http://www.streetjournal.org/api2/editissue
Параметры
user email пользователя, указанный им при регистрации на портале
pswd пароль
id Идентификатор проблемы
latitude широта
longitude долгота
name проблема (кратко)
address адрес
text проблема (подробно)
anonymous флаг анонимности (true или false)
categorymain Идентификатор основной категории
categoryadd идентификаторы дополнительных категорий (Не более двух. Целые числа через разделитель. В качестве разделителя - запятая)
photo картинка, в кодировке base64. Если запрос Multipart, то все приложенные файлы будут добавлены как фото
Кодировка
Кодировка запроса UTF-8
Content-type ответа text/xml;charset=UTF-8
Типичный ответ

<Response><Issue Id="18867"/></Response>

Аттрибут Id содержит идентификатор изменённой проблемы. Параметры могут отсутствовать.
Изменить статус проблемы
uri: http://www.streetjournal.org/api2/setstatusissue
Параметры
user email пользователя, указанный им при регистрации на портале
pswd пароль
id Идентификатор проблемы
text Текст комментария
newstatus новый статус проблемы
Кодировка
Кодировка запроса UTF-8
Content-type ответа text/xml;charset=UTF-8
Типичный ответ

<Response><Issue Id="18867"/></Response>

Аттрибут Id содержит идентификатор изменённой проблемы.
Получение компонент адреса из строки адреса(геокодинг)
uri: http://www.streetjournal.org/api2/geocode
Параметры
lat широта
lng долгота
Кодировка
Кодировка запроса UTF-8
Content-type ответа text/xml;charset=UTF-8
Типичный ответ

<Response> <place address="ул. Лебедева, 31/12, город Пермь, Пермский край, Россия, 614017"> <area address="город Пермь, Пермский край, Россия" name="город Пермь"/> <country address="Россия" name="Россия"/> <district address="Мотовилихинский Адм. район, город Пермь, Пермский край, Россия" name="Мотовилихинский Адм. район" /> <region address="город Пермь, Пермский край, Россия" name="Пермский край" /> </place></Response>

<Response> <place address="Волгоградский просп., 46ГС1, город Москва, Россия"> <area address="город Москва, Россия" name="город Москва"/> <subarea address="АО Юго-Восточный, город Москва, Россия" name="АО Юго-Восточный"/> <country address="Россия" name="Россия"/> <district address="Печатники, город Москва, Россия" name="Печатники"/> </place></Response>

<Response> <place address="Ильинский район, Пермский край, Россия"> <country address="Россия" name="Россия"/> <region address="Пермский край, Россия" name="Пермский край"/> <subregion address="Ильинский район, Пермский край, Россия" name="Ильинский район"/> </place></Response>

Элементы area, subarea, district, region и subregion могут отсутствовать. Каждый элемент включает следующие атрибуты: address - адрес, описывающий область, name - название, которое нужно будет сохранить в соответствующее поле, описывающее расположение проблемы.
Проверка логина пользователя на существование
uri: http://www.streetjournal.org/api2/validateuser
Параметры
user email пользователя, указанный им при регистрации на портале
pswd пароль
login Проверяемый пользователь
Кодировка
Кодировка запроса UTF-8
Content-type ответа text/xml;charset=UTF-8
Типичный ответ

<Response> <User Lastname="alex" Login="alex"/><User Lastname="alex" Login="alex"/> </Response>

Сериализация текстовых значений

При формировании ответа все текстовые значения проходят сериализацию, в результате чего специальные символы заменяются символьными последовательностями:

1. Символы в диапозоне 1-32 заменяются строками "&#dd;" где dd - десятичный код символа

2. Специальные символы заменяются:

меньше < &lt;
больше > &gt;
амперсанд &

&amp;

кавычка " &quot;

 

 

Обработка ошибок

Ошибки возвращаются в виде xml следующей структуры

<Fault><Message>Краткое сообщение об ошибке</Message><StackTrace>![CDATA[Стек ошибки на сервере]]</StackTrace></Fault>

Кодировка
Content-type ответа text/xml;charset=UTF-8
Типичный ответ

<Fault> <Message>Пользователь не найден или пароль указан неверно</Message> <StackTrace><![CDATA[java.lang.Exception: Пользователь не найден или пароль указан неверноat apiHandler.authenticate(apiHandler.java:435)at apiHandler.catlist(apiHandler.java:237)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)at java.lang.reflect.Method.invoke(Method.java:597)at apiHandler.doRequest(apiHandler.java:103)at gelicon.cms.AbstractHandler.submit(AbstractHandler.java:62)at ServiceClass.FormResource.writeToResponse(FormResource.java:10)at Servlets.GServlet.doGet(GServlet.java:262)at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)at java.lang.Thread.run(Thread.java:619) ]]></StackTrace> </Fault>