Skip to content

korvin3/apiApp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

apiApp

Тестовое задание на должность PHP-разработчика

Тестовое задание

Необходимо реализовать клиент к предлагаемому api не используя фреймворк и написать к нему unit тесты (PhpUnit). Все запросы к интеграции необходимо производить при помощи Guzzle (http://docs.guzzlephp.org/en/stable/) . Результат работы выложить на github.

Легенда

Надо написать клиент к http://testapi.ru который позволяет запросить и обновить данные пользователя в сторонней системе. Так же необходимо реализовать функционал использования этого клиента, где:

  • мы запрашиваем данные пользователя,
  • затем мы изменяем у него некоторые учетные данные (имя , флаг блокировки и его права) и отправляем результат в интегрируемую систему.

Авторизация

Для работы с api необходимо изначально произвести авторизацию по адресу http://testapi.ru/auth

  • метод GET
  • параметры login и pass
  • где login=test, pass=12345 результатом будет json в котором будет содержаться token

ответ: { "status": "OK", "token": "dsfd79843r32d1d3dx23d32d" }

Получение данных пользователя

Так же api предоставляет возможность получения данные пользователя по адресу http://testapi.ru/get-user/?token=

  • метод GET
  • username = ivanov
  • token = токен полученный при авторизации результатом будет json в котором будет содержать данные пользователь

ответ: { "status": "OK", "active": "1", "blocked": false, "created_at": 1587457590, "id": 23, "name": "Ivanov Ivan", "permissions": [ { "id": 1, "permission": "comment" }, { "id": 2, "permission": "upload photo" }, { "id": 3, "permission": "add event" } ] }

Отправка данных пользователя

И api предоставляет возможность обновить данные пользователя по адресу http://testapi.ru/user//update?token=

  • метод POST
  • тело запроса { "active": "1", "blocked": true, "name": "Petr Petrovich", "permissions": [ { "id": 1, "permission": "comment" }, ] }

Ответ: { "status": "OK", }

Для каждого запроса Помимо стандартных HTTP кодов ответа есть еще дополнительный параметр "status" который сигнализирует нам об успешности операции:

  • Ok - успешно
  • Not found - пользователь не найден
  • Error - ошибка

About

Тестовое задание на должность PHP-разработчика

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published