Поскольку ряд товарищей спрашивает про сабж, попытаюсь поддерживать более менее актуальный список того что есть.
Общие моменты: все сервисы на данный момент на вход принимают параметры в виде form data (url для Get, тело запроса для Post), на выходе отдают JSON. Если результат с ошибками, возвращается HTTP код ошибки и JSON вида { field: "error_field", message: "error_message"}. Поле field, если оно есть, указывает на ошибку в конкретном входном параметре, либо содержит all, если ошибка к конкретному параметру не относится.
Аутентификация и сессия — общая с остальным сайтом, т.е. форма //Users/Login.aspx для логина, затем куки .RSDNAUTH и ASP.NET_SessionId.
Часть сервисов поддерживает ETag/If-None-Match и умеет возвращать 304, так что крайне желательно чтобы клиенты, отличные от браузеров, это использовали.
Для некоторых сервисов есть демки — http://rsdn.ru/rs/demo
Общие моменты: все сервисы на данный момент на вход принимают параметры в виде form data (url для Get, тело запроса для Post), на выходе отдают JSON. Если результат с ошибками, возвращается HTTP код ошибки и JSON вида { field: "error_field", message: "error_message"}. Поле field, если оно есть, указывает на ошибку в конкретном входном параметре, либо содержит all, если ошибка к конкретному параметру не относится.
Аутентификация и сессия — общая с остальным сайтом, т.е. форма //Users/Login.aspx для логина, затем куки .RSDNAUTH и ASP.NET_SessionId.
Часть сервисов поддерживает ETag/If-None-Match и умеет возвращать 304, так что крайне желательно чтобы клиенты, отличные от браузеров, это использовали.
Для некоторых сервисов есть демки — http://rsdn.ru/rs/demo
Сервис | Состояние | url | Метод | Параметры | Результат | Пример |
---|---|---|---|---|---|---|
Дерево навигации | Beta | //frames/navtreenodes | GET | string node — имя родительского узла. Для корня node=. | Все дочерние узлы, с учетом вложенности, до тех узлов, которые являются либо листьями, либо требуют загрузки по требованию. |
|
Сообщение RSDN Team | Production | //about/askteam | POST | string name, string email, string subj, string message | пустой респонс с 204 кодом, если все хорошо, либо информацию об ошибке | |
Регистрация пользователя | Production | //account/doregister | POST | string login, string nick, string email, string pwd1, string pwd2, string recaptcha_challenge_field, string recaptcha_response_field | пустой респонс с 204 кодом, если все хорошо, либо информацию об ошибке | |
Изменение емейла и пароля | Production | //account/dochangereg | POST | int? uid, string email, string oldPwd, string pwd1, string pwd2 | пустой респонс с 204 кодом, если все хорошо, либо информацию об ошибке | |
Отправка нового сообщения | Alpha | //forum/<forum_name> | POST | string postingID, string forum, int msgID, string subject, string posterName, string password, string text, bool noSmile, string name, string tags, bool notifyAboutReplies | пустой респонс с 204 кодом, если все хорошо, либо информацию об ошибке | |
Оценка сообщения | Production | //rs/message/<messageId>/rate/<rateType> | POST | string rateType, — Тип оценки: rate, smile или agree int messageID, int? value — Значение оценки. Для типа rate: 1-3, для типа agree: -4 согласен, 0 не согласен | пустой респонс с 204 кодом, если все хорошо, либо информацию об ошибке | |
Удаление оценок | Production | //rs/message/<messageId>/rate | DELETE | int messageID, | пустой респонс с 204 кодом, если все хорошо, либо информацию об ошибке | |
Поиск профиля по подстроке | Production | //rsdnsearch/findauthor | GET | string name | Список идентификаторов и имен пользователей |
|
Получение списка топиков форума | Alpha | //rs/forum/<forum_name>/topics | GET | string forum, int? from, // По умолчанию 0 int? len // По умолчанию размер страницы из профиля | Список топиков в порядке убывания даты |
|
Получение списка ответов топика | Alpha | //rs/topic/<topicId>/replies | GET | int topicId | Список ответов в порядке возрастания даты |
|
Получение сообщения | Alpha | //rs/message/<messageId> | GET | int messageId, bool? formatted | Сообщение, включая его текст. В зависимости от значения formatted в качестве текста будет либо исходный код, либо готовый html для отображения |
|
Получение сообщений топика | Alpha | //rs/topic/<topicId>/messages | GET | int topicId, bool? formatted, int? from, int? len | Сообщения указанного топика, включая текст. В зависимости от значения formatted в качестве текста будет либо исходный код, либо готовый html для отображения |
|