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




Введение

К вам обратился директор фирмы по продаже экологически чистых видов транспорта, с просьбой вступить в команду, которая разрабатывает для него интернет-магазин. Интернет-магазин должен быть посредником между его компанией и клиентами – существующими или потенциальными.

От вас требуется написать RESTful API для интернет-магазина, всем остальным будет заниматься другие разработчики из вашей команды.

Функционал интернет-магазина будет разделен на две роли:

● администратор

● гость

 

Функциональные возможности гостя:

● авторизация

● просмотр записей товаров и комментариев

● комментирование записей товаров

● поиск записей по тегу

 

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

● создание, редактирование и удаление товаров на сайте

● удаление комментариев к записям товаров

 

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

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

 

API авторизации должен быть доступен POST-запросом на адрес {API}/auth, а также принимать следующие обязательные параметры:

● login
логин администратора

● password
пароль администратора

 

При успешной авторизации должен возвращаться ответ в следующем виде:

● status code: 200

● status text: Successful authorization

● body:

○ status
true

○ token
bearer-токен для использования API администратора

 

При безуспешной авторизации или ошибке в запросе должен возвращаться ответ в следующем виде:

● status code: 401

● status text: Invalid authorization data

● body:

○ status
false

○ message
Invalid authorization data

 

API создания товара должен быть доступен только администратору POST-запросом на адрес {API}/product, а также принимать следующие обязательные параметры:

● title
название товара, не пустой, уникальный

● firm
производитель товара, не пустой

● text
Полный текст описание товара, не пустой

● tags
тэги товара через запятую, не обязательное поле

● image
изображение товара, не пустой, разрешенные форматы: jpg, png. Максимальный размер: 3 мегабайта

 

При успешном добавлении товара в интернет-магазин должен возвращаться ответ в следующем виде:

● status code: 201

● status text: Successful creation

● body:

○ status
true

○ article_id
уникальный идентификатор товара

 

После добавления товара изображение должно загружаться на сервер в папку {API}/transport_images.

 

При безуспешном добавлении товара должен возвращаться ответ в следующем виде:

● status code: 400

● status text: Creating error

● body:

○ status
false

○ message
ассоциативный массив из параметров, которые содержат ошибку. В значении должно быть описание ошибки

 

Пример ответа при безуспешном добавлении товара:

{

“status”: false,

“message”: {

“title”: “already exists”,

“image”: “invalid file format”

}

}

 

API редактирования товара должен быть доступен только администратору POST-запросом на адрес {API}/product/< PRODUCT_ID>, а также принимать следующие параметры:

● title
название товара, уникальный

● firm
производитель товара

● text
полный текст описания товара

● tags
тэги товара через запятую

● image
изображение товара, разрешенные форматы: jpg, png. Максимальный размер: 3 мегабайта

 

При успешном редактировании товара должен возвращаться ответ в следующем виде:

● status code: 201

● status text: Successful creation

● body:

○ status
true

○ post

■ title
название товара

■ datatime
дата и время добавления товара в формате чч:мм дд.мм.гггг (09:10 09.09.2018)

■ firm
производитель товара

■ text
полный текст описания товара

■ tags
массив из тэгов товара ([“tag1”, “tag2”])

■ image
ссылка на изображение товара

 

При безуспешном добавлении товара должен возвращаться ответ в следующем виде:

● status code: 400

● status text: Editing error

● body:

○ status
false

○ message
ассоциативный массив из параметров, которые содержат ошибку. В значении должно быть описание ошибки

 

При попытке редактирования несуществующего товара должен возвращаться ответ в следующем виде:

● status code: 404

● status text: Product not found

● body:

○ message
Product not found

 

API удаления товара должен быть доступен только администратору DELETE-запросом на адрес {API}/product/<PRODUCT_ID>.

 

При успешном удалении товара должен возвращаться ответ в следующем виде:

● status code: 201

● status text: Successful delete

● body:

○ status
true

 

При попытке удаления несуществующего товара должен возвращаться ответ в следующем виде:

● status code: 404

● status text: Product not found

● body:

○ message
Product not found

 

API просмотра товаров интернет-магазина должен быть доступен GET-запросом на адрес {API}/product. Ответ должен содержать массив объектов товаров, содержащие следующие параметры:

● title
название товара

● datatime
дата и время создания товара в формате чч:мм дд.мм.гггг (12:35 06.08.2018)

● firm
производитель товара

● text
полный текст описания товара

● tags
массив из тэгов товара ([“tag1”, “tag2”])

● image
ссылка на изображение товара

Ответ должен иметь status code “200” и status text “List products”.

 

API просмотра одной записи товара должен быть доступен GET-запросом на адрес {API}/ product/<PRODUCT_ID>.

 

Ответ должен содержать следующие параметры:

● title
название товара

● datatime
дата и время создания товара в формате чч:мм дд.мм.гггг (09:10 09.09.2018)

● firm
производитель товара

● text
полный текст описания товара

● tags
массив из тэгов товара ([“tag1”, “tag2”])

● image
ссылка на изображение товара

● comments
массив из объектов комментариев содержащие следующие параметры:

○ comment_id
уникальный идентификатор комментария

○ datatime
дата и время в формате чч:мм дд.мм.гггг (09:10 09.09.2018)

○ author
имя автора, если автором комментария является администратор, то параметр содержит текст “admin”

○ comment
текст комментария

Ответ должен иметь status code “200” и status text “View product”.

 

При попытке просмотра несуществующего товара должен возвращаться ответ в следующем виде:

● status code: 404

● status text: Product not found

● body:

○ message
Product not found

 

API добавления комментария к товару должен быть доступен POST-запросом на адрес {API}/product/<PRODUCT_ID>/comments и содержать следующие обязательные параметры:

● author
имя комментатора, обязательное только для гостя

● comment
обязательное, максимум 255 символов

 

При успешном добавлении комментария к товару должен возвращаться ответ в следующем виде:

● status code: 201

● status text: Successful creation

● body:

○ status
true

 

При безуспешном добавлении комментария к товару должен возвращаться ответ в следующем виде:

● status code: 400

● status text: Creating error

● body:

○ status
false

○ message
ассоциативный массив из параметров, которые содержат ошибку. В значении должно быть описание ошибки

 

При попытке добавить комментарий к несуществующему товару должен возвращаться ответ в следующем виде:

● status code: 404

● status text: Product not found

● body:

○ message
Product not found

 

API удаления комментария к товару должен быть доступен только администратору DELETE-запросом на адрес {API}/product/<PRODUCT_ID>/comments/<COMMENT_ID>.

При успешном удалении комментария должен возвращаться ответ в следующем виде:

● status code: 201

● status text: Successful delete

● body:

○ status
true

При попытке удаления комментария к несуществующему товару должен возвращаться ответ в следующем виде:

● status code: 404

● status text: Product not found

● body:

○ message
Product not found

При попытке удаления несуществующего комментария должен возвращаться ответ в следующем виде:

● status code: 404

● status text: Comment not found

● body:

○ message
Comment not found

 

API поиска товаров по тегу должен быть доступен GET-запросом на адрес {API}/product/tag/<TAG_NAME>.

В ответ должен возвращаться ответ в следующем виде:

● status code: 200

● status text: Found product

● body
массив из объектов товаров, содержащие данный тэг:

○ title
название товара

○ datatime
дата и время создания товара в формате чч:мм дд.мм.гггг (09:10 09.09.2018)

○ firm
производитель товара

○ text
полный текст описания товара

○ tags
массив из тэгов товара ([“tag1”, “tag2”])

○ image
ссылка на изображение товара

 

Авторизация пользователя при использовании административных функциональных возможностей будет проверяться через bearer-token авторизацию. Т.е. к каждому такому запросу в headers будет дописываться bearer-token:

Authorization: Bearer xxxxxxxx

При безуспешной попытке пройти авторизацию по токену на любой из запросов, который должен быть доступен только администратору, должен возвращаться ответ в следующем виде:

● status code: 401

● status text: Unauthorized

● body:

○ message
Unauthorized

 

Под {API} подразумевается адрес https://xxx-m1.wsr.ru/api, где xxx - ваш логин.

Логин администратора admin, пароль - orenburg2018.

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2019-04-04 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: