Показаны сообщения с ярлыком API. Показать все сообщения
Показаны сообщения с ярлыком API. Показать все сообщения

вторник, 24 мая 2011 г.

Сводка используемых в последнее время технологий и библиотек


  1. Всё также незаменима библиотека DotNetOpenAuth. OpenID и OAuth в одном флаконе, клиент и сервер.
    Разнообразные сервисы начинают предоставлять API и авторизацию часто делают именно через OAuth (разных версий, 1.0 и 2.0). Всё покрывает DNOA.
  2. Продолжая тему API - большинство вендоров предоставляют доступ на основе идеологии REST.
    Мой новый конёк для взаимодействия с такими сервисами - RestSharp.
  3. А данные через REST гоняются преимущественно в формате JSON. Json.NET всё также хорош.
  4. Протокол REST - stateless. Асинхронное взамодействие великолепно кладется на эту парадигму и позволяет на том-же железе обрабатывать бо́льшое количество запросов.
    Но делать это - сложно и муторно. Reactive Extensions спешат на помощь!
  5. Да, данные-то надо хранить у себя. Приходят они к нам в JSON, зачем их во что-то конвертировать? Так и будем хранить! Новый тренд - NoSQL, документоориентированные базы данных. Я выбрал MongoDB и библиотеку NoRM для доступа из C# (поддержка LINQ в коробке). До сих пор до конца не всё понятно и идеолоигически ясно, но определенно, за этим будущее.
А для чего весь этот набор библиотек? Я попробовал и поигрался с разными API сервисов (так ничего практичного и не вышло пока :) ). Весь этот арсенал позволяет свести все технические сложности (большинство ;) ) к минимуму и сосредоточитсья именно на идее/задаче.

Вот лишь небольшой список сервисов, я с которыми я работал:

пятница, 15 мая 2009 г.

Яндекс.Фотки API

Яндекс.Фотки наконец-то открыли официальный API. Базирован на AtomPub.
Решил перевести существующие решения для Яндекс.Фоток на него (Picasa, Архив, WLW, WLPG).

Для работы с AtomPub в .NET попробовал несколько вариантов:

  1. System.ServiceModel.Syndication из .NET 3.5
    Базовые сущности ServiceDocument, AtomFeed, AtomEntry.
    Но все изменяющие операции (Insert, Update, Delete) приходится делать врукопашную, через WebRequest.

  2. Microsoft.Web.AtomPub
    Небольшая надстройка над первым пунктом из Live Framework SDK. Негибкая, на некоторых операциях с сервером от Яндекса давится.

  3. AtomSite
    Как оказалось, это серверная имплементация AtomPub, не клиент.

  4. GData .NET Client Library
    Предназначается для работы с сервисами Гугла, но есть базовая библиотека для работы с AtomPub, непривязанная к особенностям Гугла. Немного перегружена, но довольна гибкая и в исходниках!



После экспериментов остановился на последнем. Очень мне нравится конвергенция в современном мире - я объединяю двух непримиримых конкурентов.


namespace Team23.YandexFotki
{
  public class YaDataRequest : GDataRequest
  {
    ...
  }
}