Skip to content

Server API

avdosev edited this page Jul 15, 2019 · 10 revisions

Техническая информация запросов

Content-type: application/json

Get Page

на данный момент отправляются отрендеренный хтмл

  • / - сервер отправляет: index
  • /register - сервер отправляет: register
  • /sign_In - сервер отправляет: signin
  • /home сервер - отправляет: home
  • /createArticle - сервер отправляет: createArticle
  • /post/:id/ - сервер отправляет: article
  • /author/:login - сервер отправляет: authorProfile

Авторизация и регистрация пользователя

  • post '/sign_In'
{
  email : string,
  password : string
}

Валидный пример:

{
  "email": "avdeev@gmail.com",
  "password": "password"
}
  • post '/register'
{
  email : string,
  login :  : string,
  password : string
}

Валидный пример:

{
  "email": "avdeev@gmail.com",
  "login": "nikita",
  "password": "password"
}

нюанс при возникновении ошибки они посылают 401(не точно) ответ и в боди лижет текст с ошибкой

  • /logout - деавторизация, просто пошли

далее все идет в под адресе /api

Articles

  • get '/post/:id/' Отправлять ничего не нада

Страница в виде джсон:

{
  id : int,
  header : string,
  disclaimer : string,
  content : string,
  likes : int,
  dislikes : int,
  authorId : int
}
  • delete '/post/:id'

необходимо быть авторизованным

на вход

{
  ничего
}
  • get '/top'

на вход (естественно надо учитывать что в боди это не кинуть)

{
  begin : int [0, ...),
  count : int (0, ...),
  type : вариация типов представлена ниже,
  minDate : дата в виде строки (хз что тут можно кидать, 
            я не уверен, можно нул кинуть тогда она будет выставленная как 1999 год)
  [author]: int
}

вариации типов:

  1. 'rating' - наибольшему рейтингу
  2. 'date' - наисвежайшие новости
  3. 'interested' - наиболее интересные
  4. 'author' - выдает по автору
  • post '/article'

создается новая статейка

необходимо быть авторизованным

на вход

{
  header,
  disclaimer,
  art - тело статьи
}

На выход: тоже что и не распарсеной страницы

  • put '/post/:id'

необходимо быть авторизованным

на вход

{
  header : string (max length 255),
  disclaimer  : string (max length 2k),
  art : string (max length 65k)
}

Comments

  • get /post/:id/comments

получишь все комментарии страницы

  • post /post/:id/comments

создашь комментарий

{
  comment: string (max length 65(???)k)
  answeringId: int||null (null если комментарий оригинальный, если нет то это ответ на другой коммент у которого есть id)
}
  • delete /post/:id/comments

удалишь

на вход айдишник коммента

  • put /post/:id/comments

тоже что при создании