Skip to content

Тот же самый Api, что и на Laravel 8 в другом репозитории, только на нативном PHP. Делал исключительно для практики.

Notifications You must be signed in to change notification settings

Dmitry-Allread-Return/Rest-Api-With-NATIVE-PHP

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Список запросов Api

Это описание аналогично тому, что и в репозитории Rest-Full-Api-with-Laravel-8

При неверно указанных данных в запросах будет приходить ответ с Validation-error или Unauthorized, т.к. валидация придусмотрена.

Дамп базы данных можно найти среди файлов. Ее нейм "module2.sql".

Запрос 1: Регистрация (POST)  

http://localhost:8000/api/register

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

  • first_name - обязательное поле, строка

  • last_name - обязательное поле, строка

  • phone - обязательное и уникальное поле, строка

  • document_number - обязательное, строка из 10 цифр (может быть с ведущим нулем)

  • password - обязательное поле, строка

    Запрос 2: Аутентификация (POST)
    http://localhost:8000/api/login

При отправке запроса необходимо передать объект с логином(телефоном) и паролем

  • phone
  • password

В ответе должен прийти сгенерированный токен пользователя

Запрос 3: Список аэропортов (GET)  

http://localhost:8000/api/airport

Запрос на поиск аэропортов по названию города или IATA-коду.
Поиск без учета регистра.
При отправке запроса обязательно нужно передать параметр query, который может содержать одно из следующих значений:

  • название города(полное название или часть названия)
  • название аэропорта(полное название или часть названия)
  • IATA код аэропорта (SVO, KZN и т.д.)

Пример:
http://localhost:8000/api/airport?query=SVO
http://localhost:8000/api/airport?query=Moscow

В ответе на пример выше должен вернуть аэропорт Sheremetyevo.

Запрос 4: Поиск рейсов (GET)  

http://localhost:8000/api/flight

Нужно передать следующие GET-параметры:

  • from (SVO) - iata-код аэропорта вылета, обязательно, должен существовать
  • to (KZN) - iata-код аэропорта назначения, обязательно, должен существовать
  • date1 (2020-10-01) - дата вылета туда, обязательно, в формате YYYY-MM-DD
  • date2 (2020-10-13) - дата возвращения обратно, не обязательно, в формате YYYY-MM-DD
  • passengers (2) - число пассажиров (от 1 до 8 включительно), обязательно

В ответе на запрос появится список найденных рейсов из from в to.
Если указана дата возвращения (data2), то в поле data.flights_back будут обратные рейсты (из to в from), а иначе пустой массив.

Запрос 5: Оформление бронирования (POST)  

http://localhost:8000/api/booking

При оформлении бронирования нужно передать на сервер идентификаторы рейсов из базы данных, даты рейсов (в формате YYYY-MM-DD), а также список пассажиров. Каждый пассажир должен содержать следующие поля:

  • first_name - обязательное поле, строка
  • last_name - обязательно поле, строка
  • birth_date - обязательное поле, дата в формате YYYY-MM-DD
  • document_number - обязательное поле, строка из 10 цифр

В ответ на запрос должен прийти уникальный код бронирования,
состоящий из 5 латинских символов
.
Пример запроса:
Body:

{  
	"flight_from": {  
		   "id": 1,  
		   "date": "2020-09-20"  
	},  
	"flight_back": {  
		   "id": 2,  
		   "date": "2020-09-30"  
	},  
	"passengers": [  
		{  
			   "first_name": "Ivan"  
			   "last_name": "Ivanov"  
			   "birth_date": "1990-02-20"  
			   "document_number": 1234567890   
		},  
		{  
			   "first_name": "Oleg"  
			   "last_name": "Gorbunov"  
			   "birth_date": "1990-03-20"  
			   "document_number": 1224567890   
		}  
	]  
}
Запрос 6: Информация о бронировании (GET)  

http://localhost:8000/api/booking/{code}

Получить информацию о бронировании можно по коду бронирования, который необходимо вставить вместо "{code}"

Запрос 7: Информация о всех бронирования по токену (GET)  

http://localhost:8000/user/booking

Headers:
Authorization: Bearer {token}

В Postman вставляем в поле Bearer ваш токен, сгенерированный при запросе на Аутентификацию.

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

Запрос 8: Информация о пользователе по токену(GET)    

http://localhost:8000/user/

Headers:
Authorization: Bearer {token}
В ответ приходит инфа о пользователе

  • first_name
  • last_name
  • phone
  • document_number

About

Тот же самый Api, что и на Laravel 8 в другом репозитории, только на нативном PHP. Делал исключительно для практики.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages