За последние 24 часа нас посетили 22535 программистов и 1278 роботов. Сейчас ищут 755 программистов ...

Начал писать API для сайта подскажите логику

Тема в разделе "PHP для новичков", создана пользователем AnteFil, 30 июл 2020.

  1. AnteFil

    AnteFil Активный пользователь

    С нами с:
    14 янв 2014
    Сообщения:
    531
    Симпатии:
    4
    Код (Text):
    1.  
    2. Для работы с api ссылка имеет вид
    3. https://site.com/api/?get_city=омск&vac=водитель&limit=100
    4. $vhod_data = explode("&", $_SERVER['QUERY_STRING']);
    5. foreach ($vhod_data as $data){
    6.     $mas_data = explode("=", $data);
    7.     switch ($mas_data['0']) {
    8.     case "get_city":
    9.         $metod='метод определён вызываем функцию и передаём в неё параметры для работы';
    10.         break;
    11.     case "get_categor":
    12.         $metod='метод определён вызываем функцию и передаём в неё параметры для работы';
    13.         break;
    14. }
    15. }
    Правильно думаю или нет?
     
  2. Sail

    Sail Старожил

    С нами с:
    1 ноя 2016
    Сообщения:
    1.591
    Симпатии:
    360
    @AnteFil, обратите внимание на функцию filter-input-array(), примеры использования и аналогичные методы.
     
  3. AnteFil

    AnteFil Активный пользователь

    С нами с:
    14 янв 2014
    Сообщения:
    531
    Симпатии:
    4
    я знаю про неё я не стал просто код загружать что бы наглядно было
     
  4. AnteFil

    AnteFil Активный пользователь

    С нами с:
    14 янв 2014
    Сообщения:
    531
    Симпатии:
    4
    Хотя нет наверно не правильно при таком раскладе может быть выполнено два метода $metod="get_city"; и потом уже чёт с эти делать не важно сколько будет передано методов сработает только один
     
  5. AnteFil

    AnteFil Активный пользователь

    С нами с:
    14 янв 2014
    Сообщения:
    531
    Симпатии:
    4
    Хотя с другой стороны пусть вызывают get_city=москва&get_city=тверь&get_city=барнаул и тд. надо как то ограничить количество
     
  6. AnteFil

    AnteFil Активный пользователь

    С нами с:
    14 янв 2014
    Сообщения:
    531
    Симпатии:
    4
    Возможно тупо но i==0 и в цикле i++
    if(i==10) break;
    Таким образом создаётся ограничение и за один запрос больше 10 параметров не запросить
    --- Добавлено ---
    это могут быть 10 городов или 1 город + 9 параметров
    --- Добавлено ---
     
  7. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.824
    Симпатии:
    738
    Адрес:
    Татарстан
    Параметры хорошо разбираются нативными функциями parse_str((), parse_url()
    Ну и все же стоит почитать про rest api, как формировать ендпоинты, так же хорошо было использовать необходимые типы запросов get/put/post/delete
    То есть если получаете города, то
    /api/cities?limit=100&offset=0
    Понятнее.. и раз уж отдаете кусками, должен быть параметр смещения, например вторую порцию получать уже с 201 элемента
     
  8. Алекс8

    Алекс8 Активный пользователь

    С нами с:
    18 май 2017
    Сообщения:
    1.730
    Симпатии:
    359
    возьмите laravel и 80 процентов вопросов по поводу архитектуры и структуры api будут решены)
     
  9. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.752
    Симпатии:
    1.322
    Адрес:
    Лень