Ответы пользователя по тегу API
  • Как правильно прописать query для поиска файла по имени в Google Drive API на PHP?

    delphinpro
    @delphinpro Куратор тега PHP
    frontend developer
    Они предоставляют клиентскую библиотеку.
    Пример использования тоже есть

    spoiler
    use Google\Client;
    use Google\Service\Drive;
    function searchFiles()
    {
        try {
            $client = new Client();
            $client->useApplicationDefaultCredentials();
            $client->addScope(Drive::DRIVE);
            $driveService = new Drive($client);
            $files = array();
            $pageToken = null;
            do {
                $response = $driveService->files->listFiles(array(
                    'q' => "mimeType='image/jpeg'",
                    'spaces' => 'drive',
                    'pageToken' => $pageToken,
                    'fields' => 'nextPageToken, files(id, name)',
                ));
                foreach ($response->files as $file) {
                    printf("Found file: %s (%s)\n", $file->name, $file->id);
                }
                array_push($files, $response->files);
    
                $pageToken = $response->pageToken;
            } while ($pageToken != null);
            return $files;
        } catch(Exception $e) {
           echo "Error Message: ".$e;
        }
    }
    Ответ написан
    4 комментария
  • Как передать обьект модели пользователя в шаблон?

    delphinpro
    @delphinpro Куратор тега Laravel
    frontend developer
    поэтому использую ajax. Как я понял, в контроллере нельзя получить сведения о пользователе, если данные передаются таким споссобом

    Дайте угадаю. Конфигурация по умолчанию, и вы делаете запрос на роут /api/blabla
    Только вот /api по умолчанию предлагается использовать для stateless запросов.
    Можете использовать другой роут, например /ajax/bla, тогда все запросы будут проходить через группу миддлвэров web и стартовать сессию.
    Или исправить RouteServiceProvider

    Route::prefix('api')
        // ->middleware('api')
        ->middleware('web')
        ->group(base_path('routes/api.php'));


    B тогда у вас в контроллере, вызываемом через аякс, будет текущая сессия, а значит и Auth::user() будет содержать текущего пользователя.

    PS Passport и Sanctum тут совершенно не нужны.
    Ответ написан
    2 комментария
  • Как отправить медиа через телеграм N кол-во раз?

    delphinpro
    @delphinpro Куратор тега PHP
    frontend developer
    Как уже отметили, нет примера входных данных. Так что навскидку:

    $input = [
        'cat.jpg',
        'cat_2.jpg',
        'cat_3.jpg',
    ]
    
    $media = array_map(fn($image) => ['type' => 'photo', 'media' => 'attach://'.$image ], $input);
    
    $arrayQuery = [
        'chat_id' => 1424646511,
        'media' => json_encode($media),
    ];
    
    foreach ($input as $image) {
      $arrayQuery[$image] => new CURLFile(__DIR__ . '/' . $image);
    }
    Ответ написан
    2 комментария
  • Как использовать API в NextJS?

    delphinpro
    @delphinpro Куратор тега JavaScript
    frontend developer
    Сохраняйте полученные данные себе в базу. Вместе с данными храните время их получения.
    При запросе к своему АПИ проверяете время последнего обновления в своей базе, и если оно больше Х, то делаете запрос к внешнему АПИ и полученное сохраняете себе.

    Можно хранить у себя как полную базу полученных данных из внешнего АПИ.
    А можно кратковременно хранить результаты (кэширование).
    Ответ написан
  • Bearer Token, как сделать скрипт с его использованием?

    delphinpro
    @delphinpro Куратор тега PHP
    frontend developer
    Комментировать
  • Фоновая отправка писем в API?

    delphinpro
    @delphinpro
    frontend developer
    Да. Лучше кидать отправку в очередь и обрабатывать отдельно. С контролем проваленных задач, ведь письмо может не отправиться по какой-либо причине.
    Ответ написан
    Комментировать
  • Как реализовать свою JS библиотеку и предоставить API?

    delphinpro
    @delphinpro Куратор тега JavaScript
    frontend developer
    Так как это тестовое задание, следует считать, что оно самодостаточное.
    Все спорные вопросы вы разрешаете на свое усмотрение.

    Таким образом мы видим, что нам надо иметь возможность нарисовать несколько графиков.

    Прототипируем простой интерфейс

    MyChart.init({
      charts: [
        {
          name: 'name',
          axis: {
            x: { /* параметры для оси X */ }
            y: { /* параметры для оси Y */ }
          },
          data: [ /* массив данных (точек) для отрисовки */
            {x:1,y:2},
            //...
          ],
        },
      ],
    });


    Для всплывающих подсказок можно завести отдельный параметр или добавить опцию в массив точек.

    Все остальное — ресайз, масштабирование, — реализуете внутри библиотеки, без внешних интерфейсов (без настроек). Это все-таки тестовое задание, а не полноценная библиотека.
    Ответ написан
    Комментировать
  • Что такое stateless в http api?

    delphinpro
    @delphinpro
    frontend developer
    Stateless нужно понимать ровно так, как оно звучит — без состояния.
    Т.е. сервер вас не помнит, при каждом новом запросе вы должны ему сообщать кто обращается за данными. В обычном случае — это JWT токен. Он содержит информацию о текущем пользователе. Как уже сказал Rsa97 — токен самодостаточен. Как минимум на википедии, как максимум, в куче статей в интернете есть информация, как создается и как валидируется этот токен. Если вы используете какой-либо фреймворк, то у вас уже есть готовые абстракции для обработки токенов или полностью для аутентификации на основе токенов.
    Ответ написан
  • Как правильно сделать API в связке Laravel + Vue?

    delphinpro
    @delphinpro Куратор тега Laravel
    frontend developer
    У меня есть идея такая: во Vuex есть модуль, например, pages, который будет делать 1 запрос к API и раскидывать пришедшие данные в остальные модули. Делают ли так с роутингом на Vue?


    Хм.
    И как эти эндпойнты будут в апишке выглядеть?

    GET /api/pleaseGiveMeAllDataForPageOne
    GET /api/pleaseGiveMeAllDataForPageTwo

    Херня какая-то.. Как потом этот АПИ тестировать?
    А еще лишние, совершенно ненужные Контроллеры/методы в бекэнде.
    Ответ написан
    Комментировать
  • Разница между микро-фраемворком и полноценным?

    delphinpro
    @delphinpro Куратор тега Laravel
    frontend developer
    Slim по сути всего лишь предоставляет вам роутер и нифига больше.
    Laravel - практически всё что потребуется в процессе разработки.
    Ответ написан
    3 комментария
  • Как повышать версию 0.y.z при обратно несовместимых изменениях API?

    delphinpro
    @delphinpro
    frontend developer
    В ветке 0.x.x делайте что хотите. Тут по умолчанию все изменения несовместимые :)
    Ответ написан
    Комментировать