Справочный API 2ГИС разрабатывается уже 4 года. Появилось около 40 методов, которые возвращают достаточно крупные и иерархически сложные структуры в формате JSON и XML. Совсем недавно я решил поделиться накопленным опытом и выступить на конференции DevConf.
Одна из тем доклада вызвала наибольший интерес у участников — это использование JSON-Schema при тестировании формата выдачи API. В этой статье я расскажу, какие задачи решает этот подход, какие имеет ограничения, что вы получаете из коробки, а что идёт бонусом. Поехали!
Рубрика «json» - 21
Применение JSON-Schema в тестировании и документировании API
2013-07-16 в 6:15, admin, рубрики: javascript, json, json-schema, XML, Блог компании 2ГИС, документация, разработка, метки: javascript, json, json-schema, XML, документацияRiak-js. Основы использования и трудности поиска
2013-07-01 в 19:17, admin, рубрики: json, map reduce, node.js, nosql, riak, search, баги, Веб-разработка, метки: json, map reduce, node.js, riak, search, багиMeta
Доброго времени суток!
В данный момент я работаю над достаточно большим проектом, состоящим из нескольких модулей, и использующий разные технологии. Но сам сайт, а точнее его back-end написан целиком на Node.js, а Riak является основным хранилищем. Ничего не буду писать про сам Riak, на хабре и так есть отличная обзорная статья.
Как и для любой другой NoSQL базы данных, чтобы интегрировать функциональность БД в Node.js вам необходимо использовать драйвер или клиент этой базы данных, кому как нравится называть. Вам это надо для удобства пользования и составления запросов к БД, конечно вы можете это делать и напрямую, используя незатейливую команду curl.
Сразу хочу оговориться, что клиенты или драйвера для различных NoSQL БД называют по-разному, я же буду говорить или как об ORM или как о клиенте конкретной ДБ. Кстати, имено так о себе и пишут в Riak-js репозитории:
Node.js client for Riak.
Вот некоторые, а возможно что и все Node.js клиенты для riak
- riak-js — используемый в нашем проекте
- Simpleriak
- Riak-PB — использует protobuff, может быть немого быстрее
Из-за незначительного опыта работы с последними двумя, сказать мне вообщем-то про них нечего, поэтому дальше речь пойдет только riak-js.
Реализация взаимодействия нескольких сайтов на Python c сайтом на Go
2013-06-15 в 10:33, admin, рубрики: golang, json, python, Программирование, метки: golang, json, pythonВ данной статье хочу рассказать про реализацию системы единого входа на форумы “Сети Знаний”.
Входные данные. Имеется система форумов вопросов и ответов, движок которых написан на Python. Каждый форум — это отдельное веб-приложение со своей базой данных. Все форумы работают из одних исходников.
Задача. Реализовать возможность входа пользователей на форумы, на которых они еще не зарегистрированы, по имеющимся данным с другого форума.Читать полностью »
Простой JSON Schema валидатор для Objective-C
2013-05-25 в 20:45, admin, рубрики: binding, iOS, json, json-schema, objective-c, validator, Программирование, разработка под iOS, метки: binding, iOS, json, json-schema, objective-c, validatorИли сказ о том, как разработка JSON валидатора превратилась в очередной JSON binding
Пока нормальные разработчики пишут приложения я изобретаю велосипеды.
Наверное многие разработчики сталкивались с ситуацией, когда мобильное приложение разрабатывается параллельно с бэкэндом. При этом частенько структуры данных, приходящие в ответ на запрос с сервера, могут меняться. Например, на стороне бэкэнда решат поменять именование одного из ключиков JSON-а, забыв предупредить о этом мобильную команду. Я уже не говорю про ситуации, когда CamelCase нотацию «внезапно» решили поменять на underscore или наоборот. Вы можете сказать, что налицо плохая организация процесса и недостаток общения команд, и будете абсолютно правы. Но когда приложение на смартфоне заказчика перестает работать на демо все взгляды устремляются на мобильщиков.
IIS 7: компрессия JSON ответа
2013-05-24 в 7:29, admin, рубрики: .net, ASP, asp.net mvc, iis, json, web.config, Веб-разработка, метки: asp.net mvc, iis, json, web.config Несколько дней назад мой знакомый обратил внимание, что его большие JSON ответы (порядка 0,5-1 мегабайта) не паковались. Рабочая связка Windows 2008 R2 + IIS 7.5 + ASP.NET MVC 4. Проблема обозначена, начался поиск решения. Чтобы воспроизвести наши действия, для статьи я написал отдельное приложение.
Читать полностью »
Идея для рассылки уведомлений в приложениях VK методом secure.sendNotification
2013-05-20 в 7:46, admin, рубрики: JS, json, Песочница, метки: json, vkontakte apiИтак, не могу сказать новая это идея или уже у кого-то был подобный подход, но все-таки мыслями и неким опытом хочется поделиться(думаю, будет интересно тем, кто еще ни разу не использовал данный метод).
Недавно сделал свое первое приложение для VK; исключительно для тренировки своих навыков в JavaScript, который изучаю всего несколько месяцев, да и не очень усердно. Разумеется, после нескольких недель захотелось оповестить своих 500 пользователей. Читать полностью »
jsFind. Выборка данных из массива объектов
2013-05-14 в 7:13, admin, рубрики: javascript, JS, json, ненормальное программирование, метки: jsonЗадача: Язык javascript. Имеется большой массив объектов. Нужно выбрать из массива некоторые объекты, в зависимости от значений свойств этих объектов.
Внимание! Всё нижеследующее возможно дикий баян и скорее всего стрёмный велосипед. Приведённый код опытным программистам отрубает пальцы, а неопытных разрывает в клочья.
Читать полностью »
edn: extensible data notation
2013-04-30 в 11:24, admin, рубрики: clojure, json, Сетевые технологии, метки: clojure, jsonВ этой статье я хочу рассказать про edn. edn — формат данных, появившийся из языка clojure. Он похож на JSON, но предоставляет некоторые возможности, отсутствующие в JSON. Особенности edn описаны далее. Пример для затравки:
{:name "edn"
:implementations #{"clojure" "java" "ruby" "python" "c" "javascript" "haskell" "erlang"}
:related "clojure"
:encoding :UTF-8}
Обновление информации в фоне Revisited, или long polling для ретрограда
2013-04-16 в 20:48, admin, рубрики: ajax, javascript, jquery, json, polling, rss, метки: ajax, json, polling, rss 
Привет! В данном посте я хочу поделиться своим вариантом использования схемы обновления данных, описанной в статье читателя zim32, в одном простеньком вебдванольном приложении.
Disclaimer: Да не введет вас в заблуждение наличие термина «long polling» в заголовке. Это всего лишь присказка, а сказ о другом. Читать полностью »
EasyMapping, или Путешествие по JSON’у
2013-04-15 в 11:14, admin, рубрики: ios development, json, mobile development, objective-c, мобильная разработка, разработка под iOS, метки: ios development, json, mapping, objective-c, мобильная разработкаComputer programs are the most complex things that humans make. It is also the nature of software to be extensively modified over its productive life. If we can read and understand it, then we can hope to modify and improve it.
© Douglas Crockford, автор спецификации JSON
JSON — это мост между двумя мирами: миром веб-сервисов и миром клиентских приложений. Однако мост не настолько совершенен, чтобы данные существовали в одном формате. Пока что мы всегда вынуждены преобразовывать информацию в представление того языка, с которым работаем, для архитектуры того приложения, которое пишем. Для того чтобы такое преобразование было успешным, оно должно быть в первую очередь простым.
Есть много способов превращения JSON в Objective-C обьекты, однако многие из них имеют свои недостатки, которые мешают с ними работать. Есть известный и любимый многими RestKit, однако он, к сожалению, эффективно работает только при наличии идеального REST API. Шаг в сторону — и вы будете забивать гвозди микроскопом, не понимая, зачем нужно писать такие сложные конструкции для достаточно простых вещей. Есть решение от разработчиков GitHub — Mantle, однако с ним вы будете вынуждены наследоваться от базового класса Mantle и постоянно использовать NSValueTransformer — не самую популярную технологию в iOS/Mac OS разработке.
Я хочу рассказать о фреймворке, который недавно нашелся на просторах GitHub, и который позволяет достаточно просто и красиво преобразовывать JSON в Objective-C обьекты — EasyMapping.
Если заинтересовались, добро пожаловать под кат!
Читать полностью »

