api

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
Auramel
Сообщения: 80
Зарегистрирован: 2017.11.17, 14:39
Откуда: Russia, Ufa
Контактная информация:

api

Сообщение Auramel » 2018.04.05, 12:41

Делаю API.

Код: Выделить всё

public function actionIndex(string $token = '', string $command = '')
    {
        try {
            if (empty($token || empty($token))) {
                throw new \Exception('empty token or command');
            }

            $token = TokenRecord::findOne(['id' => $token]);

            if (is_null($token)) {
                throw new \Exception('token not exists');
            }

            $user = UserRecord::findOne(['id' => $token->getAttribute('userId')]);

            if (is_null($user)) {
                throw new \Exception('user not exists');
            }
        } catch (\Exception $exception) {
            return $exception->getMessage();
        }

        return 'good';
    }
Как бы Вы оптимизировали данный код? на какие классы или методы поделили бы это?

UPD: еще вопрос. Кто работал в Laravel знает метод $request->getContent(). Какой аналог у Yii2? Через postman в body отправляю JSON данные, нигде их не вижу. :?
Последний раз редактировалось Auramel 2018.04.05, 13:23, всего редактировалось 1 раз.

andku83
Сообщения: 988
Зарегистрирован: 2016.07.01, 10:24
Откуда: Харьков

Re: api

Сообщение andku83 » 2018.04.05, 12:59


nickdenry
Сообщения: 98
Зарегистрирован: 2015.10.28, 04:55

Re: api

Сообщение nickdenry » 2018.04.05, 14:15

Код: Выделить всё

if (empty($token || empty($token))) {
    throw new \Exception('empty token or command');
}
Исправил бы на это:

Код: Выделить всё

if (empty($token) || empty($command)) {
    throw new \Exception('empty token or command');
}
Ответственные программисты с высоким уровнем технического долга (c)

Auramel
Сообщения: 80
Зарегистрирован: 2017.11.17, 14:39
Откуда: Russia, Ufa
Контактная информация:

Re: api

Сообщение Auramel » 2018.04.05, 14:22

nickdenry писал(а):
2018.04.05, 14:15

Код: Выделить всё

if (empty($token || empty($token))) {
    throw new \Exception('empty token or command');
}
Исправил бы на это:

Код: Выделить всё

if (empty($token) || empty($command)) {
    throw new \Exception('empty token or command');
}
Оригинально :D

Аватара пользователя
zabachok
Сообщения: 519
Зарегистрирован: 2013.12.16, 14:38

Re: api

Сообщение zabachok » 2018.04.06, 15:35

Все что в блоке try переместить в форму и валидировать все это в ней. На то есть стандартные валидаторы.
2b||!2b Just read the instructions

Аватара пользователя
tugrik
Сообщения: 21
Зарегистрирован: 2016.03.11, 17:07

Re: api

Сообщение tugrik » 2018.04.06, 15:51

Auramel писал(а):
2018.04.05, 12:41
Через postman в body отправляю JSON данные, нигде их не вижу. :?
Скилл ванги:
а в

Код: Выделить всё

file_get_contents('php://input');
-есть , и в

Код: Выделить всё

Yii::$app->request->getRawBody();
-есть
ПС: а хидери вообще придумали просто так...

Auramel
Сообщения: 80
Зарегистрирован: 2017.11.17, 14:39
Откуда: Russia, Ufa
Контактная информация:

Re: api

Сообщение Auramel » 2018.04.06, 23:23

tugrik писал(а):
2018.04.06, 15:51
Auramel писал(а):
2018.04.05, 12:41
Через postman в body отправляю JSON данные, нигде их не вижу. :?
Скилл ванги:
а в

Код: Выделить всё

file_get_contents('php://input');
-есть , и в

Код: Выделить всё

Yii::$app->request->getRawBody();
-есть
ПС: а хидери вообще придумали просто так...
Ха ха, а вот и нет. Создал issue в yii2. Не работает php://input

Nex-Otaku
Сообщения: 825
Зарегистрирован: 2016.07.09, 21:07

Re: api

Сообщение Nex-Otaku » 2018.04.07, 09:51

Чем "rawBody" не угодил?

Ответить