• Правильно ли я понимаю что такое API?

    SagePtr
    @SagePtr
    Еда - это святое
    Представьте себе страуса, голова которого торчит в песке, а задница - снаружи. Вот задница страуса - это и есть API, который вам этот страус предоставляет, вы можете взаимодействовать со страусом ровно так, как вам этот страус позволяет, через эту самую задницу, не выкапывая при этом самого страуса из песка.

    В вашем примере вы заталкиваете страусу в попу HTTP-запрос, он его обрабатывает и через эту же попу возвращает вам результат в формате JSON. Но это только особенности работы конкретного API, в Windows API к примеру вы вызываете функции, которые возвращают вам результат (либо в регистр процессора его записывают, либо кладут в память по адресу, который вы задаёте одним из параметров функции). Ещё некоторые API возвращают ответ в формате XML, а некоторые и вовсе позволяют выбрать желаемый формат ответа.
    Ответ написан
    1 комментарий
  • Правильно ли я понимаю что такое API?

    rockon404
    @rockon404
    Frontend Developer
    Сама аббревиатура API расшифровывается как программный интерфейс приложения, интерфейс на уровне чего угодно от класса до целого сервиса. Вы наверное имели ввиду API веб-сервиса или REST API.
    Как бы объяснить попонятней, API веб-сервиса это публичный или закрытый интерфейс взаимодействия, реализуемый посредством HTTP-запросов (GET, POST, PUT, PATCH, DELETE) и ответов. Ответы обычно в формате JSON.
    Обработчики конкретных запросов на сервере называют эндпоинтами. Пример типичных эндпоинтов:
    GET 'api/v1/products' - вернет массив товаров.
    GET 'api/v1/product/:id' - вернет один товар по id
    POST 'api/v1/product' - добавляем товар, отправив в теле запроса JSON с данными и получаем в ответ его же, но уже с присвоенным базой данных id или просто id.
    PATCH 'api/v1/product/:id' - обновляем товар отправляя измененные поля в виде JSON и получаем измененный товар или success.
    DELETE 'api/v1/product/:id' - удаляем товар, получая в ответе success.

    Основные пользователи REST API это мобильные и веб приложения. Часто многие сервера и сайты используют API сторонних сервисов.
    Ответ написан
    Комментировать
  • Правильно ли я понимаю что такое API?

    Stalker_RED
    @Stalker_RED
    Неправильно.

    API (application programming interface) - набор готовых классов, процедур, функций, структур и констант, предоставляемых приложением (библиотекой, сервисом) или операционной системой для использования во внешних программных продуктах.
    https://ru.wikipedia.org/wiki/API

    Ваш пример с запросами на сервер и возвращающимся JSON-ом это очень частный случай. Главная ошибка в вашем утверждении состоит в том, что API - это не те штуки который к вам возвращаются, а те штуки которые сработали после вашего запроса.

    Может быть при этом они вам вернули результат, иногда он даже бывает в формате JSON.

    Анекдот
    Едут по Австралии биолог, физик и математик.
    И видят: на лугу пасется черная овца.
    Биолог: Смотрите, в Австралии обитают черные овцы.
    Физик: Нет, в Австралии обитает как минимум одна черная овца.
    Математик: Нет, господа. В Австралии обитает как минимум одна
    овца, и как минимум с одной стороны она черная.
    Ответ написан
    8 комментариев
  • Как создать общую папку для всех виртуальных хостов на апаче?

    littleguga
    @littleguga
    Не стыдно не знать, а стыдно не интересоваться.
    Как вариант, прописать каждому сайту алиас на стили и js
    <VirtualHost *:80>
            DocumentRoot "/var/www/sites/site1"
            ServerName "site1.ru"
    
            Alias /styles /var/www/sites/styles
            Alias /js /var/www/sites/js
    </VirtualHost>
    
    <VirtualHost *:80>
            DocumentRoot "/var/www/sites/site2"
            ServerName "site2.ru"
    
            Alias /styles /var/www/sites/styles
            Alias /js /var/www/sites/js
    </VirtualHost>
    Ответ написан
    1 комментарий
  • Как использовать атрибуты data-* не загромождая html код?

    @bromzh
    Drugs-driven development
    Одна из целей использования data-атрибутов - как раз уменьшить количество строк js-кода. Например, в бутстрапе всякие табы и прочие элементы используют их, чтобы не прописывать поведение переключалок вручную в js. Так что польза их не писать там, где позволяет библиотека. весьма сомнительная. С другой стороны, если всё равно надо писать что-то на js с использованием таких атрибутов, то можно всё убрать в js. Тогда будет нагромождение в js-коде.
    Ответ написан
    Комментировать
  • Как использовать атрибуты data-* не загромождая html код?

    crazyzubr
    @crazyzubr
    Python backend-developer
    А почему не поставить data-атрибут на tr, а в выборке в скрипте прописать раскрытие коллапса не на все колонки, а только те что без класса icons-row:
    $('td:not(.icons-row)').on('click', function(){ /*  код сворачивания */  })
    Ответ написан
    1 комментарий
  • Связка HTML/CSS + Python?

    Rrooom
    @Rrooom
    Какая, к чертям, для начинающего разница фронтэнд-бэкэнд?

    Мне сейчас главное получить работу,


    Вот и займитесь этим. Ни разу не встречал человека, который сидя дома с нуля чему-то научился. Вон, пример, знакомый, юрист, "точно решил стать программистом", уже второй год учит html и сидит на шее то родителей, то девушки.

    Сначала погуглите - не ведет ли какая-нибудь веб-студия или компания курсы программирования в вашем городе. Даже в моей деревне такое есть, лично знаю три компании, которые бесплатно с нуля готовы учить - иначе бы у них вообще специалистов не было. PHP? Да, php - говно. Но вам шашечки или ехать?

    Если нет - смотрите вакансии - даже в самом захолустье есть вакансии без опыта или прямо с поиском джунов. Плевать какая технология. Программит - это программист, а не java- или js- или шарпо- скриптер Читаете все слова. Учите, проходите туториалы, гоняете себя по вопросам "собеседование *имя основной технологии*". Максимум - неделя-две. С этими знаниями и головой на плечах вас берут. Затем идете работать-учиться. За полгода-год станете достаточно уверенным специалистом.
    Ответ написан
    3 комментария
  • Как удалить в папке всё, кроме определенной папки?

    @Shetani
    ls | grep -v dir2 | xargs rm -rfv
    команда запускается из папки general
    dir2 - имя папки которую удалять не надо. Так же выведет список удаленных файлов и папок, если этого не нужно, уберите ключ v у команды rm
    Ответ написан
    4 комментария
  • С чего начать фрилансить?

    @Sn0wSky
    Я буквально за месяц вышел на уровень адекватной зарплаты. Регистрируетесь на любой популярной фриланс бирже и мониторите весь день вакансии, закидывая в те, которые Вам по силам. Желательно изучить какую-нибудь очень популярную cms, станет гораздо проще, и круг проектов, за которые Вы можете взяться - расширится.

    Первую неделю везде было абсолютное затишье, проплатил несколько аккаунтов на нескольких биржах. Абсолютный молчок. Один человек написал за это время, попросил портфолио, а я смог только сказать ему об опыте и всё. Не беритесь за то, что не можете, будет минус мораль после оправданий перед заказчиком, и конечно же отрицательный отзыв. А при 0 положительных и 1 отрицательном можете в принципе забивать на свой аккаунт. А вот с первым работодателем и потом с первым отзывом находить заказы стало гораздо проще, максимум 1-1.5 дня. Через месяц даже накапливается небольшая база постоянных клиентов.

    И да, 100т.р. более чем за 3 месяца очень реальная сумма. Всё зависит от того как быстро найдете первого клиента, качества Вашей работы и времени, которое Вы будете уделять фрилансу.
    Ответ написан
    4 комментария
  • 2 сервера на 80 порту - как реализовать?

    desperadik
    @desperadik
    Истина где-то рядом.
    НЕ надо никаких вторых вторых айпи. Просто на одном из серверов поднимаете mod_proxy для Apache на 80 порт (например для debian: sudo apt-get install libapache2-mod-proxy-html libapache2-mod-gnutls), а виртхост с сайта у этого сервера переводите на какой-нибудь другой порт. (напр. 12345) После настраиваете конфиги прокси (советую для каждого вирт хоста создавать отдельный конфиг):
    Примеры для debian:
    a2enmod proxy
    touch proxy.site.local (напр. для 192.168.0.5)
    vi proxy.site.local
    <VirtualHost *:80>
            ServerAdmin des@fortoster
            DocumentRoot "/var/www/test"
    
            ServerName      proxy.site.local
            ServerAlias     site1.domain.ru www.site1.domain.ru
    
            ProxyRequests Off
            ProxyPreserveHost On
            ProxyVia full
    
            <Proxy *>
            Order deny,allow
            Allow from all
            </Proxy>
    
            ProxyPass / http://127.0.0.1:12345/
            ProxyPassReverse / http://127.0.0.1:12345/
    </VirtualHost>

    Сохраняем.
    После уже подключаем к прокси другой сайт (192.168.0.6)
    touch proxy.site2.local
    vi proxy.site2.local

    ServerAdmin des@fortoster
    DocumentRoot "/var/www/test2"

    ServerName proxy.site2.local
    ServerAlias site2.domain.ru www.site2.domain.ru

    ProxyRequests Off
    ProxyPreserveHost On
    ProxyVia full


    Order deny,allow
    Allow from all


    ProxyPass / http://192.168.0.6:80/
    ProxyPassReverse / http://192.168.0.6:80/

    И не забыть указать в ports.conf порт локального сайта.

    Теперь если к вам из вне будут обращаться например site1.domain.ru будут попадать на 192.168.0.5 (апач перебросит на локалхост), а если site2.domain.ru - то на 192.168.0.6. (апач проверит по алиасу и перебросит на 0.6:80)

    И ещё, обязательно на роутере перебросьте 80 порт на тот IP на котором стоит Apache с прокси. Если будут вопросы: sk desperadik2
    Ответ написан
    2 комментария