опубликовать JsonObject как реальный объект класса php для метода symfony 4

привет, я хочу опубликовать строку json с такими программами, как postman, а затем метод получения параметра Action без ручного преобразования! WebApi может сделать это очень просто!

class User
{
    private $FirstName;
    private $LastName;
    private $Age;


    /**
     * @return mixed
     */
    public function getFirstName()
    {
        return $this->FirstName;
    }

    /**
     * @param mixed $FirstName
     */
    public function setFirstName(string $FirstName): void
    {
        $this->FirstName = $FirstName;
    }

    /**
     * @return mixed
     */
    public function getLastName()
    {
        return $this->LastName;
    }

    /**
     * @param mixed $LastName
     */
    public function setLastName(string $LastName): void
    {
        $this->LastName = $LastName;
    }

    /**
     * @return mixed
     */
    public function getAge()
    {
        return $this->Age;
    }

    /**
     * @param mixed $Age
     */
    public function setAge(int $Age): void
    {
        $this->Age = $Age;
    }



}

затем в классе контроллера в методе, таком как setUser, получите десериализованное значение json, переданное с помощью postman . Мне не нравится класс запроса пользователя вместо моего объекта.

/**
 * @Route("/setUser/",methods={"POST"})
 * @param User $user
 * @return Response
 */
public function setUser(User $user)
{
    return new Response("Age is: " . $user->getAge());
}

при отправке с почтальоном значение параметра $user равно null!


person hamed hosiny    schedule 23.03.2018    source источник
comment
Я не понимаю вашего вопроса. Вы хотите преобразовать входной JSON в объект? Если это так, взгляните на компонент Serializer -› symfony.com/doc/ текущий/компоненты/сериализатор.html   -  person Dayron Gallardo    schedule 24.03.2018
comment
@DayronGallardo Я хочу отправить json с почтальоном, а затем в функции setUser получить преобразованный объект без добавления кода! Сделайте это автоматически и получите пользовательский объект.   -  person hamed hosiny    schedule 24.03.2018
comment
Я не думаю, что вы можете сделать это без кодирования. Насколько мне известно, в Symfony вы не можете автоматически привязывать входные данные (например, JSON или форму) к объекту. Вам нужно закодировать класс для привязки ваших входных данных к сущности.   -  person Dayron Gallardo    schedule 25.03.2018
comment
@DayronGallardo, поэтому Symfony сбивает меня с толку! Webapi делает это без кодирования.   -  person hamed hosiny    schedule 26.03.2018


Ответы (1)


Я только что узнал о пакете, который вы можете очень легко интегрировать в проект Symfony 4, который делает именно то, что вы хотите -> https://api-platform.com/ . После установки вам нужно заботиться только об определениях Entity. Этот пакет создает конечную точку для методов API и обрабатывает CRUD.

person Dayron Gallardo    schedule 26.03.2018
comment
спасибо, но переключитесь на Spring boot и теперь так счастливы. потому что я разработчик Android iOS, а язык spring - java! теперь Spring может конвертировать объект json в модель даже лучше, чем любой API, который я когда-либо видел! - person hamed hosiny; 27.03.2018