Комментарии 7
Замечание — код бы под PSR подогнать, да форматирование добавить — читается сложно.
Вопрос — это laravel? Очень похоже. Если да — то почему curl, а не guzzle?
Вопрос — это laravel? Очень похоже. Если да — то почему curl, а не guzzle?
Это Laravel. Я делаю заказ. Curl потому что он точно у меня установлен, я умею с ним работать и сдавать нужно вчера, поэтому даже в голову не пришло что-то другое взять. Честно, с Guzzle не работал. Но! Я делаю отдельный свой проект, изучу и, возможно, буду использовать.
По коду. Принято. Но это иллюстрация, к тому же мой черновик. Но за замечание отдельное спасибо, грешу.
По коду. Принято. Но это иллюстрация, к тому же мой черновик. Но за замечание отдельное спасибо, грешу.
Пробегусь по всему коду.
- Полностью array() можно не писать, лучше []. Сути не меняет, но полную запись давно не видел(больше имхо)
- Нет валидации. Понимаю, что демка, но в демку лучше тоже добавлять
- 'useroks.user_id' — 'useroks' излишне. Да и название таблицы такое себе, если честно. Про переменные не по PSR я молчу — в комменте выше было. Ну и можно свести where('useroks.user_id', '=', $request->user_id) до whereUserId($request->user_id)
- ksort не нужен
- foreach выглядит странно
- sectret_key — ааааа именование :(
- В объявлениях методов (кроме getalbums) нету объявления типа аргумента. Не надо так… Да и проверки типа is_array уйдут
Я поясню.
1. Здесь полностью согласен
2. Валидация здесь совсем не нужна (т.к. это черновик реального проекта, там это чуть иначе реализовано и форм для ввода нет).
3. useroks — здесь хранятся acess_token пользователя. Есть и uservks. Таблицы я разделил. Можно и в одной, но не стал. Мало ли какие ещё настройки по API придется вписывать.
4. ksort нужен. Это я параметры сейчас составил в алфавитном порядке. Но если их не отсортировать, то мы получим всё ту же ошибку 104.
5. foreach в данном случае быстро и просто решает задачу — создать строку из параметров ключ=значение (см. документацию APIOK)
6. sekret_key. Это наименование из мануала в ВК. Здесь для наглядности. Вообще я за очень короткий код и минимум переменных. Но на этапе поиска решения иной раз приходится идти на жертвы.
7. Я аргументы убрал почти со всех функций. У меня много асинхронных запросов на api маршруты. И для проекта есть своя система управления правами. Короче в моем случае все аргументы передаются через $request, а middlewear определяет принадлежность токена пользователю, какие права у группы пользователя на конкретный маршрут (1 разрешено всё, 2 операции только со своей информацией, 3 запрещено, опять же если в БД как-то заявлены права на маршрут, но для конкретной группы пользователей ничего не написано, то автоматом права 3 — запрещено). В моем случае — это одно из решений. Бюджет заказа не скажу, что большой, поэтому делаю то, что быстро, что работает, попутно оставляю комментарии.
Но Вы дали мне вполне ценную информацию и замечания. И я несомненно учусть, в т.ч. благодаря Вам.
1. Здесь полностью согласен
2. Валидация здесь совсем не нужна (т.к. это черновик реального проекта, там это чуть иначе реализовано и форм для ввода нет).
3. useroks — здесь хранятся acess_token пользователя. Есть и uservks. Таблицы я разделил. Можно и в одной, но не стал. Мало ли какие ещё настройки по API придется вписывать.
4. ksort нужен. Это я параметры сейчас составил в алфавитном порядке. Но если их не отсортировать, то мы получим всё ту же ошибку 104.
5. foreach в данном случае быстро и просто решает задачу — создать строку из параметров ключ=значение (см. документацию APIOK)
6. sekret_key. Это наименование из мануала в ВК. Здесь для наглядности. Вообще я за очень короткий код и минимум переменных. Но на этапе поиска решения иной раз приходится идти на жертвы.
7. Я аргументы убрал почти со всех функций. У меня много асинхронных запросов на api маршруты. И для проекта есть своя система управления правами. Короче в моем случае все аргументы передаются через $request, а middlewear определяет принадлежность токена пользователю, какие права у группы пользователя на конкретный маршрут (1 разрешено всё, 2 операции только со своей информацией, 3 запрещено, опять же если в БД как-то заявлены права на маршрут, но для конкретной группы пользователей ничего не написано, то автоматом права 3 — запрещено). В моем случае — это одно из решений. Бюджет заказа не скажу, что большой, поэтому делаю то, что быстро, что работает, попутно оставляю комментарии.
Но Вы дали мне вполне ценную информацию и замечания. И я несомненно учусть, в т.ч. благодаря Вам.
Насколько я знаю, при вызове методов API ок с помощью https подпись больше не требуется (но валидируется, если передана). Узнаю детали, почему информация об этом опубликована только для bot api методов
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Как генерировать правильную подпись (SIG) в API OK.RU. Работаем с ошибкой 104