Git Product home page Git Product logo

rest-api-with-native-php's Introduction

Список запросов 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

rest-api-with-native-php's People

Contributors

dmitry-allread-return avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.