Skip to content
Sergei Maximov edited this page Feb 17, 2017 · 14 revisions

В текущем репозитории описаны ресурсы, составляющие JSON API сайта TeachMePlease. Для решения возникших вопросов воспользуйтесь Issues репозитория или контактными данными, расположенными внизу страницы.

Версионирование

Версия API указывается с помощью HTTP-заголовка Accept:

Accept: application/vnd.teachmeplease-v1+json

Если данный заголовок отсутствует, то по умолчанию используется текущая версия — v1.

Запросы

Все запросы к API выполняются на хост api.teachmeplease.com через протокол HTTPS. Формат запросов и ответов — JSON:

$ curl -v -H 'Accept: application/vnd.teachmeplease-v1+json' \
    https://api.teachmeplease.com/version
*   Trying 54.70.108.87...
* Connected to api.teachmeplease.com (54.70.108.87) port 443 (#0)
> GET /version HTTP/1.1
> Host: api.teachmeplease.com
> User-Agent: curl/7.43.0
> Accept: application/vnd.teachmeplease-v1+json
>
< HTTP/1.1 200 OK< Content-Type: application/json
< Content-Length: 16
< Connection: keep-alive
< Status: 200 OK
< Cache-Control: max-age=0, private, must-revalidate
< ETag: W/"67bcb8bad58a7f0d34e78e0825795352"
< X-Runtime: 0.001863
< X-Request-Id: 5bbfaccf-32b6-4e13-9549-c912533bf8ef
< Date: Fri, 10 Feb 2017 15:05:09 GMT
< X-Powered-By: Phusion Passenger 5.1.0
< Server: nginx/1.10.2 + Phusion Passenger 5.1.0
<
* Connection #0 to host api.teachmeplease.com left intact
{"version":"v1"}

Типы данных

Все базовые типы данных, упомянутые в данном документе, соответствуют типам, описанным в формате JSON, за некоторым исключением.

Поля с типом timestamp представляют собой временной штамп (время и дату) в виде строки в формате ISO 8601.

Все ресурсы (если не указано обратное) имеют три обязательных поля:

Поле Тип Описание
id integer идентификатор ресурса
created_at timestamp время создания ресурса
updated_at timestamp время последнего изменения ресурса

В дальнейшем при описании типов ресурсов эти поля упоминаться не будут.

OrganizationType

Поле Тип Описание
name string название типа организации
individual bool доступен для физических лиц?
businessman bool доступен для индивидульных предпринимателей?
entity bool доступен для юридических лиц?

LessonMethod

Поле Тип Описание
name string название способа обучения
online boolean подходит ли данный способ для обучения онлайн?
offline boolean подходит ли данный способ для обучения оффлайн?

Tag

Поле Тип Описание
name string имя тега

Примечание: данный тип не содержит полей created_at/updated_at.

Ресурсы

Тип организации (OrganizationType)

GET /organization_types

Возвращает список всех типов организаций.

Параметры запроса

Данный ресурс не принимает дополнительных параметров.

Ответ

Ответ на успешный запрос представляет собой массив объектов типа OrganizationType.

Способ обучения (LessonMethod)

GET /lesson_methods

Возвращает список всех способов обучения.

Параметры запроса

Данный ресурс не принимает дополнительных параметров.

Ответ

Ответ на успешный запрос представляет собой массив объектов типа LessonMethod.

Тег (Tag)

GET /tags

Возвращает список всех тегов.

Параметры запроса

Данный ресурс не принимает дополнительных параметров.

Ответ

Ответ на успешный запрос представляет собой массив объектов типа Tag.