API

Возврат ошибок при некорректной обработке формы, структура ответа для html формы - формат для json, HTTP

Пример ответа для формы смены пароля (возможная струкутра):


<?php

$response = [
   $message => 'Есть проблемы!',
   $errors = [
      'old_password' => 'Неверный пароль, вспоминайте!'
      'new_password' => 'Новый пароль и поле подтверждения не совпадают!',
      'new_password_confirm' => 'Новый пароль и поле подтверждения не совпадают!'
   ]
]

-- также:

XMLHttpRequest withCredentials POST, GET Авторизация с установкой куки и её отправкой в следующем запросе. Примеры запросов

Рассмотрим ситуацию с кроссдоменными запросами, где у вас должна быть в том числе авторизация. В этом примере мой бэк находится "где-то" а запросы будут выполняться иного домена - а именно с http://example.com

Собственно говоря, должен работать вот такой код (пример json-авторизации, с получением куки и её и использованием в следующем GET-запросе):

linux curl POST JSON Отправляем запрос, смотрим ответ и заголовки из терминала

Curl очень удобен для быстрой проверки работы каких-то сервисов/API прямо из терминала.

Отправляем запрос методом POST и получаем ответ:

curl --header "Content-Type: application/json" \
--request POST \
--data '{"email":"admin","password":"3359din22"}' \
"http://mysite.my/api/v1/user/login"

Если нужно посмотреть ещё и заголовки ответа, добавим флаг -i:

symfony detime normalizer Как десериализовывать дэйттайм и связанные сущности (объект по id)

services:
    # default configuration for services in *this* file
    _defaults:
        autowire: true      # Automatically injects dependencies in your services.
        autoconfigure: true # Automatically registers your services as commands, event subscribers, etc.
        bind:
            Symfony\Component\Serializer\SerializerInterface $apiSerializer: '@api.serializer'

   #..........

    Symfony\Component\Serializer\Normalizer\GetSetMethodNormalizer: ~
    Symfony\Component\Serializer\Encoder\JsonEncoder: ~

    app.entity_serializer:

symfony Вывод сообщений сообщений исключений (ошибок) в формате JSON. Разные форматы для разных контроллеров

Symfony 5

Если используете аннотации, то в файле:

config/routes/annotations.yaml

можно написать так:

controllers:
    resource: ../../src/Controller/
    type: annotation
api-controllers:
    resource: ../../src/Controller/Api
    type: annotation
    defaults:
        _format: json

В данном случае контроллеры из директории

../../src/Controller/Api  

в случае возникновения в них исключительной ситуации будут выводить сообщения именно в формате json.

[!] Swagger по-русски. Справочник и примеры работы (PHP, zircote/swagger-php)

Swagger -- средство для удобной разработки и просмотра документации к метода REST API.

Остальные материалы см. по ссылкам ниже.

RESTful API -- что это в программировании (REST)

Что такое RESTful API

RESTful API -- это API, предоставляемое сервером, работающее по правилам REST.

Описание возможной реализации

Всё взаимодействие с сервером может сводится к 4 операциям (4 - это необходимый и достаточный минимум, в конкретной реализации типов операций может быть больше):

Pages

Subscribe to RSS - API