Пишу на Laravel, TypeScript NodeJS и Kotlin.
Контакты
Местоположение
Украина, Ивано-Франковская обл., Ивано-Франковск

Достижения

Все достижения (15)

Наибольший вклад в теги

Все теги (136)

Лучшие ответы пользователя

Все ответы (447)
  • Может ли быть API не как API?

    Alex_Wells
    @Alex_Wells
    PHP/TS/Kotlin developer
    Нет, не "должен", но может. Лично я пришел к такой схеме:
    - 200-ые статус коды отправляются ТОЛЬКО тогда, когда все прошло успешно. В таком случае не будет никаких success: true или response: {} - а нужные данные, прямо на первом уровне нестинга. Собственно если взять за правило, что 200-ые коды возвращаются когда все ок, то можно полностью избавлятся от этих плохих проверок на наличие ключа в респонсе.
    - 400-ые и 500-ые будут попадать в отдельный колбек/реджектить промис, опять же избавляя от нужды проверять какие-то ключи. Для всех кодов ответов, кроме 400 и 422 - в ответе нету нихрена. Ни code, ни message, ни response. Вообще ничего. Вся инфа находится в самом http status коде. Для 400 и 422 прибавляется параметр code, который является номером ВНУТРЕННЕЙ ошибки (ну, например, есть какие-то предусловия для выполнения запроса - уникальность эмейл адреса при регистрации как пример) - по ней фронт может показывать отдельные ошибки либо выполнять какую-то логику.

    Плюс ко всему этому у себя локально и на сервере для фронта включен дебаг, добавляющий некий параметр _debug к каждому ответу. В нем может хранится любая инфа - сообщение с ошибкой (даже если ее можно понять по http коду или внутреннему), стак трэйс 500-ой ошибки и тд.
    Ответ написан
  • Можно ли использовать .env в production?

    Alex_Wells
    @Alex_Wells
    PHP/TS/Kotlin developer
    .env файл не загружается в гит. На то он и env (environment - среда), что бы каждый раз настраивать его под нужную среду. Так что в проде он тоже используется.

    "It is important to remember that this setup should only be used for development. For production you should still set your environment variables in the standard way" - написано в статье. Дочитывайте до конца) the standard way = .env
    Ответ написан
  • Как управлять ролями и правами Laravel 5 и VUE.JS?

    Alex_Wells
    @Alex_Wells
    PHP/TS/Kotlin developer
    Реализуется легко:

    на беке юзаете баунсер + $this->authorize/Gate::allows и проверяете нужные права, вне зависимости от фронта.
    на фронт с бека передаете берете массив пермишенов (абилитис в баунсере), в том же месте, где передаете юзера (не важно, отдельным запросом или сразу при загрузке страницы). Пишите во vuex'е нужные геттеры, как пример из моего проекта:

    export const can = (state) => (perm) => this.loggedIn(state) && state.authUser.abilities.includes(perm);
    export const canAny = (state) => (perms) => perms.some(x => this.can(state)(x));


    И юзаете директивы где нужно, предварительно импортнув нужные геттеры:

    v-if="can('chat.mute')"

    PS: не стоит писать свои директивы "v-can", ибо:
    1) они не информативны (непонятно, что они делают, если прав нет)
    2) прийдется написать с десяток таких, на все случаи жизни, типа "can-show", "can-if" и прочая лабудень.

    PS2: про "переход по страницам" и любые запросы на бек - ларавель сам кинет forbidden 403, проверяете интерцептором в axios'е на этот статус и кидаете на страницу с ошибкой/показываете окошко/нотификацию/птичку/кошку.
    Ответ написан
  • С чего начать изучение Laravel?

    Alex_Wells
    @Alex_Wells
    PHP/TS/Kotlin developer
    1. Да
    2. В 6 почти ничего в сравнении с 5-кой не удаляли, бери 6
    3. Нету смысла в lumen
    4. laracasts.com
    Ответ написан

Лучшие вопросы пользователя

Все вопросы (68)