api

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

api

Сообщение Auramel »

Делаю 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 »

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

Re: api

Сообщение nickdenry »

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

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 »

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
Сообщения: 522
Зарегистрирован: 2013.12.16, 14:38

Re: api

Сообщение zabachok »

Все что в блоке try переместить в форму и валидировать все это в ней. На то есть стандартные валидаторы.
2b||!2b Just read the instructions
Аватара пользователя
tugrik
Сообщения: 26
Зарегистрирован: 2016.03.11, 17:07

Re: api

Сообщение tugrik »

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 »

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
Сообщения: 831
Зарегистрирован: 2016.07.09, 21:07

Re: api

Сообщение Nex-Otaku »

Чем "rawBody" не угодил?
Ответить