• RESTful API и MVC — что это?

    Основной посыл использования RESTful API - применение основной идеи Паутины для взаимодействия автоматических агентов (приложений), а не только людей.
    Основная идея Паутины - построение распределенной информационной системы путем публикации неких абстрактных ресурсов, выдачи им идентификаторов (в сегодняшнем вебе - иерархических), определения ряда простых и широко известных операций над ними, не зависящих от содержимого ресурса (те самые GET, POST, PUT и т.д.), и связывания этих ресурсов ссылками (это называется гипермедиа, и в частности, гипертекст, если речь идет о текстовой информации).
    Как люди с появления Веба публикуют информацию в нем для потребления другими людьми, так и RESTful веб-сервисы публикуют иерархически структурированные ресурсы для потребления клиентами. Разница только в представлении - для людей это plaintext/HTML, для автоматических агентов - это JSON/XML/прочие форматы, которые удобно обрабатывать.
    Таким образом, если вы хотите какую-то информацию опубликовать как RESTful API, вам необходимо представить ее как набор ресурсов, а все операции над этой информацией выразить через набор предопределенных операций. Фишка в том, что во многих задачах этих предпопределенных операций вполне достаточно, главное правильно определить ресурсы.
    Важно понимать, что "ресурс" это обычно некоторая сущность, "существительное". Как правильно заметил Антон Жуков , ресурс /getItems хоть и может существовать в принципе, говорит о неудачно спроектированном API (действие представлено как ресурс).

    Есть и другие подходы к архитектуре распределенных приложений, например архитектуры, основанные на RPC (удаленный вызов процедур). Информация в таких архитектурах также представлена в виде некоторого набора сущностей, однако операции над ними определяются конкретной задачей, и для каждой сущности будет свой набор. Это больше соотвествует классическому ООП-подходу. Таким образом, RESTful следует подходу много сущностей (ресурсов) - мало операций (и эти операции известны заранее), а RPC - немного сущностей, но много операций над ними.

    Также важной чертой REST является отсутствие состояния, сохраняемого между запросами к ресурсам. Это очень важно для масштабирования системы.

    Сама архитектура REST не привязана к конкретным технологиям и протоколам, но в реалиях современного Веб, построение RESTful API почти всегда подразумевает использование HTTP и каких-либо распространенных форматов представления ресурсов, например JSON, или, менее популярного сегодня, XML.

    Смысл использования REST в том, что принципы, хорошо показавшие себя в "человеческом" веб и позволившие построить самую большую распределенную ИС, применяют и для "веба машин".

    Ответ длинноват, но как короче объяснить, чтобы не исказить понимание, не представляю. Если что непонятно - спрашивайте.
    Ответ написан
    7 комментариев
  • В чем разница git commit и git commit -a?

    karabanov
    @karabanov
    Системный администратор
    -a
    --all
    Tell the command to automatically stage files that have been modified and deleted, but new files you have not told Git about are not affected.

    В коммит автоматически добавятся изменённые файлы - не надо предварительно выполнять git add <file>
    Ответ написан
    Комментировать
  • Для чего нужна область видимости scope?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Java
    Седой и строгий
    Затем, чтобы например при сборке артефакта для использования в проде не включать в него библиотеку JUnit, которая нужна только при тестировании.
    Ответ написан
    Комментировать
  • Почему не работает React?

    drop9dead
    @drop9dead
    Имя функции, описывающей компонент, должно быть с большой буквы, иначе при транспиляции из JSX не будет создана ссылка на компонент
    function Jo () {
      return(
        <div>
          <h1>jojojojo</h1>
        </div>
      )
    }
    render(<Jo />, document.getElementById('root'))
    Ответ написан
    Комментировать
  • Куда делся индикатор заряда батареи на ноутбуке?

    Dagzio
    @Dagzio
    System administrator
    1. Перейдите в раздел Пуск > Параметры > Персонализация > Панель задач, а затем прокрутите экран вниз до области уведомлений.
    2. Перейдите в раздел и выберите значки, отображаемые в панели задач и переведите переключатель Питание в положение "Вкл."
    3. Если значок аккумулятора все равно не отображается - установите флажок "Показать скрытые значки на панели задач", а затем выберите значок аккумулятора.
    4. Если на устройстве, работающем от аккумулятора, при переходе в раздел Пуск > Параметры > Персонализация > Панель задач переключатель "Питание" недоступен или не отображается - зайдите в Диспетчер устройств и в списке результатов в разделе Батареи щелкните правой кнопкой мыши батарею вашего устройства, выберите пункт Отключить и нажмите кнопку Да. Подождите несколько секунд, щелкните правой кнопкой мыши батарею и выберите Включить. Затем перезапустите устройство.
    Ответ написан
    2 комментария
  • Почему ноутбук заряжается до 99% максимум?

    Zoominger
    @Zoominger Куратор тега Ноутбуки
    System Integrator
    Не страшно. Скорее всего, просто глюк контроллера или подсистемы ACPI.
    Через какое-то время должно пройти, как только контроллер нормально откалибрует батарею.
    Ответ написан
    1 комментарий
  • $_POST и формы?

    @morricone85
    method="POST" в форме
    Ответ написан
    Комментировать
  • $_POST и формы?

    Не совсем понял: Вы передаете данные обработчику в том же файле? (1 строка Вашего кода) Тогда зачем вообще указывать файл обработчика?
    Второе соображение аналогично указанному morricone85 : Вы не указали в заголовке формы метод POST. Добавьте к тэгу атрибут method="post".
    Ответ написан
    1 комментарий