Как стать автором
Обновить

OData + Angular.js + Bootstrap + JavaScript Grid = приложение за 5 минут

Время на прочтение6 мин
Количество просмотров32K
Предположим в некотором проекте появилась необходимость добавить некоторую форму опроса пользователей на веб сайте (детальная форма) и форму для просмотра и редактирования списка пользователей для администратора системы (списковая форма).

Рассмотрим процесс создания этих форм с использованием OData, Angular.js, Bootstrap и JavaScript Grid. Все требования к такому приложению уже реализованы в этих инструментах, и нам практически не требуется ничего писать.

Читать дальше →
Всего голосов 19: ↑17 и ↓2+15
Комментарии9

Грид, группировка данных и OData

Время на прочтение4 мин
Количество просмотров8.4K
В одной из прошлых статей мы кратко рассказали, как грид контролы работают с удаленным сервером, используя OData протокол. Большинство современных грид контролов позволяют удобно группировать данные по нескольким колонками. Рассмотрим подробнее, как формулируются запросы к REST серверу, в случае, когда грид производит автоматическую группировку данных.

Удобство (зачем это нужно)


Грид контролы, позволяющие группировать записи по нескольким колонкам, существенно упрощают жизнь как программисту, так и конечному пользователю. Очень удобно иметь возможность сгруппировать, например, список задач, выделить задачи, требующие помощи, разделить их по приоритетам, и т.д.

image
Читать дальше →
Всего голосов 26: ↑25 и ↓1+24
Комментарии0

Эта неделя в jQuery, том 3

Время на прочтение2 мин
Количество просмотров959
Новая неделя, и новая коллекция ссылок на некоторые из самых интересных и захватывающих происшествий в сети.
Читать дальше →
Всего голосов 40: ↑38 и ↓2+36
Комментарии6

Управление API и SOA

Время на прочтение9 мин
Количество просмотров17K
Достижение начального успеха для Сервис-ориентированной Архитектуры (Service Oriented Architecture, SOA) определяется:
  • созданием слабосвязанных соединений «потребитель-поставщик»,
  • соблюдение принципа разделения ответственностей между потребителем и поставщиком,
  • публикация набора повторно используемых, общих сервисов
  • и обеспечение того, чтобы потребители приняли и стали использовать сервис.

Множество команд разработчиков создают и используют сервисы, но до сих пор идет мучительный подбор архитектуры, при которой сервисы будут широко использованы, с потенциалом для повторного использования внутренними командами разработки. Вместо создания согласованной сервисной архитектуры и демонстрации множественного использования одних и тех же сервисов, разработчики вновь и вновь не нарочно создают «Просто Набор Веб Сервисов» (Just a Bunch of Web Services (JBOWS)) или «Просто Набор REST Сервисов» (Just a Bunch of REST Services (JBORS)).

Простое приложение чаще всего работает с неким сервисом и спагетти-сетью конечных точек, поставщиков данных этого сервиса, которые переплетены связями один-к-одному. Многие команды в этом случае сходятся во мнении что фокус на SOA и REST не то чтобы помогал в решении вопросов гибкости решений. Скорее просто происходит подмена набора IT инструментов, форматов сообщений и протоколов.

Управление SOA, API, и приложением может стать мостом между этими концепциями и улучшить архитектурную согласованность всего решения.

Сервисы, API и архитектура


Когда вы будете решать, что использовать как лучшие практики для сервис-ориентированной архитектуры, определять дизайн RESTful сервисов, когда будете формировать план по управлению ими, четко определите, как ваши сервисы и API вместе будут укладываться в общую архитектурную картину.
Читать дальше →
Всего голосов 14: ↑13 и ↓1+12
Комментарии2

Object Storage — Ближайшее будущее систем хранения данных

Время на прочтение7 мин
Количество просмотров21K


Девять лет назад «Международный день телекоммуникаций» был переименован в «Международный день телекоммуникаций и информационного общества». Для золотого миллиарда будущее уже наступило: интернет стал одной из важнейших частей нашей жизни. Ежесекундно по всему миру создаются и потребляются колоссальные объёмы информации, а рынок всевозможных онлайн-сервисов является одним из самых быстрорастущих.

Одной из главных тенденций последнего времени стало развитие облачных технологий. Они используются повсеместно, от файлообменников и видеохостингов до мобильных приложений, сервисов заказа услуг и внутренних корпоративных систем. Подавляющее большинство подобных проектов оперируют неструктурированной информацией, причём ёмкость файловых хранилищ ежегодно увеличивается примерно на 53%. И с ростом объёмов генерируемой и хранимой информации трансформируются и требования к системам хранения данных.
Читать дальше →
Всего голосов 13: ↑12 и ↓1+11
Комментарии10

Сайт на основе одной HTML-страницы

Время на прочтение5 мин
Количество просмотров19K
Когда вокруг так много новых технологий, непросто понять, на изучение какой стоит потратить время.
(Karl Seguin)

Сейчас наступило интересное время, когда одни новые технологии стремительно меняются другими новыми, которые тоже быстро меняются. Положительная производная этого процесса в том, что, пока крутится этот технологический калейдоскоп, работа для девелопера найдётся. Но, иногда возникают задачи, для решения которых, говоря образным языком, лучше подойдёт не новая бензопила, а пилочка в старом перочинном ножике.

Изображение - Сайт на основе одной HTML-страницы

В статье показан приём разработки сайта, когда основной результат достигается за счёт использования базовых механизмов открытых стандартов.
Читать дальше →
Всего голосов 40: ↑8 и ↓32-24
Комментарии32

Тестируем Spring Rest контроллеры: проще, короче, надежнее. Spring Security Test + JSON Matcher

Время на прочтение3 мин
Количество просмотров34K


Здравствуйте!
Собственный JSON Matcher, использование Spring Security Test, недавно вошедший в Spring Security 4.0, и отказ от транзакций при тестировании сервисов позволяют сделать тесты проще и надежнее.

Я использовал данный подход при создании приложения на своем курсе Topjava (Maven/ Spring/ Security/ JPA(Hibernate)/ Rest(Jackson)/ Bootstrap(CSS)/ jQuery + plugins).
Данная статья не является еще одним учебником по тестированию Spring REST контроллеров и предполагает что вы уже с ним знакомы.

Про выгоды отказа от транзакций я уже писал в предыдущей публикации По следам Spring Pet Clinic. Maven/ Spring Context/ Spring Test/ Spring ORM/ Spring Data JPA. К перечисленным недостаткам использования @Transaction еще можно добавить невозможность посмотреть реальные запросы при выполнении метода сервиса к базе (например при включенном hibernate.use_sql_comments)

Здесь я напишу как проще, короче, надежнее тестировать Spring REST контроллеры.
Читать дальше →
Всего голосов 8: ↑6 и ↓2+4
Комментарии1

Социальный логин: cильные стороны

Время на прочтение9 мин
Количество просмотров15K


Cоциальный логин (логин с использованием аккаунта Google+, Facebook и т.п.) все чаще встречается в мобильных и веб-приложениях. Не удивительно, это удобно. Пользователю не приходится возиться с логином и паролем. Не нужно ничего запоминать, затем вспоминать или восстанавливать. Не приходится разгадывать капчу. На мобильных устройствах ввод пароля крайне не желателен и формирует негативный опыт у пользователя. Владелец приложения получает свои плюсы: простая регистрация — большее количество пользователей, довольные пользователи — выше показатели конверсии. Наличие профиля пользователя уже на этапе регистрации, и как правило, много более достоверного и полного нежели формы запрашиваемые приложением.

Интеграция социального логина не вызывает сложностей. Написано большое количество библиотек, которые реализуют протокол аутентификации, учитывают особенности реализаций специфичные для каждого из провайдеров, используют API провайдера для извлечения профиля пользователя и затем приводят его к установленному формату.

Решают ли библиотеки все задачи?
Читать дальше →
Всего голосов 12: ↑9 и ↓3+6
Комментарии6

RPC, Messaging, REST: Терминология

Время на прочтение4 мин
Количество просмотров85K

RPC, Messaging, REST: Терминология



Цель данной статьи — обсудить терминологию. Статья — не о том, как и для чего, а только исключительно об использовании терминологии. Статья отражает мнение автора и не претендует на научность.

RPC, Messaging, REST- Terminology - RPC, Messaging, REST- Терминология

Вступление



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

Проблема возникает, когда встречаются люди, использующие разные технологии, и когда эти люди начинают технические разговоры. При этом часто возникает взаимное недопонимание, обусловленное терминологией. Я здесь попытаюсь свести воедино терминологии, используемые в разных контекстах.
Читать дальше →
Всего голосов 17: ↑11 и ↓6+5
Комментарии20

Офис как Платформа, выпуск №3: Power BI. Получаем данные из REST API

Время на прочтение6 мин
Количество просмотров24K
Это наш очередной пост в колонку “Office как Платформа”. На этот раз приветствуем Дмитрия Соловьева ( dmitriysolovev), руководителя центра поддержки Office 365 в компании АстроСофт – автора уже нескольких статей по технологии PowerBI. В этой статье Дмитрий расскажет о том, как использовать REST API для получения данных из внешних источников для визуализации и анализа в PowerBI. – Владимир Юнев

Всем привет! На хабре было уже несколько постов на тему Power BI. Если судить по комментариям, то как минимум нескольким читателям актуальна тема получения данных из REST веб-сервисов. Сегодня ее и рассмотрим на примере получения и обработки данных с портала открытых данных г. Санкт-Петербурга (http://data.gov.spb.ru/). Экзекуции будут подвергнуты данные технико-экономических паспортов многоквартирных домов (http://data.gov.spb.ru/datasets/69/). В роли «пыточного инструмента» выступит Excel 2016, в состав которого теперь по умолчанию встроен Power Query.

Введение


В целом Power Query позволяет получать данные из открытых и не очень источников различными способами (рис.1):

  1. Получение данных «Из интернета». В этом случае достаточно указать URL страницы, на которой находятся интересующие нас данные и загрузить их. Из недостатков – стабильно работает только на страницах, использующих табличную вёрстку; приходится писать функции в случае, если данные разбиты на страницы; администраторы сайта могут Вас забанить, если будет слишком много запросов (а они будут, если страниц много);
  2. Получение данных из канала OData. Этот вариант подходит для различных LOB-приложений, которые поддерживают OData;
  3. Написать запрос с нуля, используя возможности языка «M». Как раз этот вариант я и буду использовать в данном случае.
Читать дальше →
Всего голосов 14: ↑11 и ↓3+8
Комментарии1

RESTful API — большая ложь

Время на прочтение7 мин
Количество просмотров433K
От переводчика:
Я впервые попробовал перевести статью такого объёма и IT-тематики, с радостью прочту ваши комментарии и замечания. Что же касается самой статьи: я не согласен с автором как минимум потому, что, по сути, он заменяет REST на… REST (!!!), но немного в другом обрамлении. Однако, не смотря на то, что в статье преподносится много очевидных вещей, мне она показалась достойной обсуждения на Хабре.

Почему Вам стоит похоронить эту популярную технологию

image
Читать дальше →
Всего голосов 71: ↑47 и ↓24+23
Комментарии148

Создаём REST-сервис на PostgreSQL и Rust. Часть 1: прототип

Время на прочтение6 мин
Количество просмотров37K
Всем привет.

Какое-то время назад я видел в небезызвестном блоге пост о том, как реализовать на Go простую программу, работающую с БД, а затем сделать на её базе целый REST-сервис. Я решил проверить, насколько сложно сделать аналогичную программу на Rust и поделиться результатами.



Мы начнём с работы с БД и создадим обычное консольное приложение, а затем добавим, так сказать, REST-фронтенд.
Читать дальше →
Всего голосов 37: ↑33 и ↓4+29
Комментарии28

EHcache RESTful сервер, РНР и просто эксперименты…

Время на прочтение13 мин
Количество просмотров3.7K
logoСегодня мы продолжим исследования различных новых и не очень технологий, необычного их применения или просто оригинальных вещей. Возможно, вы вспомните, я когда-то писал о проекте распределённого кеша EHcache для платформы Java. Сегодня настало время продолжить эту тему, однако в другом ракурсе — в виде отдельного RESTful сервера.

читать дальше
Всего голосов 20: ↑19 и ↓1+18
Комментарии9

Офис как Платформа, выпуск №5 — представляем OneNote REST API

Время на прочтение7 мин
Количество просмотров7.8K
В очередной статье Александра Богданова рассказывает об использовании нового OneNote REST API для приложений любого типа и на примере универсальных приложений Windows 10. Все статьи колонки «Офис как Платформа» вы всегда можете найти по ссылке #officeplatform — Владимир Юнев.
OneNote является одним из самых популярных приложений для создания заметок, списков, распорядков дня. Для того, чтобы упростить создание приложений-ежедневников, Microsoft выпустила OneNote API. Вы можете интегрировать OneNote для работы с заметками в ваше приложение. Для разработчиков доступно OneNote REST API, на основе которого можно создать приложение под любую платформу.


На хабре уже была краткая инструкция об использовании OneNote API, сегодня я расскажу о возможностях OneNote REST API на примере приложения для Windows 10.
Читать дальше →
Всего голосов 21: ↑19 и ↓2+17
Комментарии0

Создаём REST-сервис на Rust. Часть 4: переходим к REST API

Время на прочтение9 мин
Количество просмотров26K
В прошлый раз мы реализовали обновление БД.

Осталось сделать только REST-интерфейс. Давайте займёмся этим.

Введение


Эта часть будет, пожалуй, самой сложной — мы близко узнаем типажи Send и Sync, а также тонкости работы замыканий и времён жизни. По-другому я бы озаглавил её «зануда исследует, почему обязательно нужно клонировать данные». Она полезна тем, что затрагивает тонкие места Rust и показывает причины некоторых неочевидных ошибок. Так что если хотите разобраться досконально — добро пожаловать.

Также хочу отметить: если вам что-то непонятно относительно приведённого кода или сами объяснения кажутся недостаточно ясными, не стесняйтесь писать об этом в комментариях. Автор потратил не минуту и не полчаса, пытаясь понять, почему код работает именно в том виде, в котором он написан, и вынужден был не раз сходить в IRC и на форум за разъяснениями.
Читать дальше →
Всего голосов 17: ↑14 и ↓3+11
Комментарии2

POST из java

Время на прочтение2 мин
Количество просмотров1.8K
Сегодня поделюсь вот таким опытом. Услышав модное слово REST, решили тут же применить этот тренд в проекте. В проекте необходимо было хранить картинки для соответствующих ресурсов. И было выбрано такое соглашение:
  • GET http://localhost/res/image/1001
    — позволяет скачать картинку (файл jpg) для ресурса за номером тысяча один
  • POST http://localhost/res/image/1001
    — принять и сохранить (заменить, если была) картинку
  • DELETE http://localhost/res/image/1001
    — соответственно удалить

Модель, кстати, себя оправдала. Пользуемся по сей день. А вот в процессе разработки возник вопрос как же это чудо попробовать, протестировать. Тем более реализация этой функциональности на клиенте (Flex, btw) ещё не была готова.

Читать дальше →
Всего голосов 3: ↑3 и ↓0+3
Комментарии10

Создаём REST-сервис на Rust. Часть 5: обработчики, рефакторинг, и макросы

Время на прочтение14 мин
Количество просмотров9.2K
Всем привет!

Мы продолжаем писать веб-сервис на Rust. Оглавление:

Часть 1: прототип
Часть 2: читаем INI; multirust
Часть 3: обновляем базу из консоли
Часть 4: переходим к REST API
Часть 5 (эта): обработчики, рефакторинг, и макросы

Теперь мы рассмотрим собственно обработчики запросов к API и перепишем предыдущий, страшный код. И вообще, это последняя статья из цикла, поэтому здесь будут рефакторинг, стиль, макросы и все-все-все. Это самая длинная часть.
Читать дальше →
Всего голосов 20: ↑20 и ↓0+20
Комментарии3

Spring MVC/Security, REST, Hibernate, Liquibase запускаем в две строки

Время на прочтение71 мин
Количество просмотров41K

Современные системы сборки позволяют полностью автоматизировать процесс компиляции и запуска приложения из исходников. На целевой машине необходим лишь JDK, все остальное включая и сам сборщик загрузится налету. Надо лишь правильно построить процесс сборки и по запуску двух команд получить, например, следующее: запуск базы данных, выполнение SQL скриптов, компиляцию Java, Javascript и CSS файлов, запуск контейнера сервлетов. Реализуется это с помощью Gradle, HSQLDB, Liquibase, Google closure compile и Gretty. Подробнее в статье.
Читать дальше →
Всего голосов 9: ↑8 и ↓1+7
Комментарии8

PyNSK #5 — пятая встреча Новосибирского Python сообщества

Время на прочтение1 мин
Количество просмотров3.1K
image


Питонисты Новосибирска, приглашаем вас на встречу сообщества Python сообщества — PyNSK.

12-го декабря (суббота) состоится пятая встреча. Она пройдет в новом для нас месте — Культурный Центр «Этаж» и начнется 13-00.
На встрече вас ждет море общения и 2 доклада:
Узнать о докладах
Всего голосов 7: ↑7 и ↓0+7
Комментарии0