Я хотел бы предоставить некоторые данные клиентским приложениям через HTTP. Например, клиент может перейти по URL-адресу: http://mysite.com/books/12345 для получения данных о книге 12345. Клиент может выполнить HTTP PUT или POST для http://mysite.com/books/54321, чтобы загрузить данные о книге 54321. Это известно как RESTful веб-сервис?
Я понятия не имею, с чего начать. Я хотел бы написать серверную логику в C # /. NET, имея в виду, что клиенты будут использовать технологии сторонних производителей, такие как C ++, Objective-C и Java, поэтому я не хочу зацикливаться на том, что работает в среде Microsoft .NET. Клиенты также будут работать через сотовые соединения с ограниченной пропускной способностью. Я хотел бы использовать компактный и переносимый протокол по HTTP, такой как Google Protocol Buffers, для обеспечения связи между различными языками и платформами.
Какую технологию Microsoft я должен использовать для написания веб-службы RESTful, как я описал в первом абзаце? Какую технологию с открытым исходным кодом я мог бы использовать для написания веб-службы RESTful, описанной в первом абзаце? Имеет ли значение, какой веб-сервер я использую? Можно ли отправлять двоичные данные (protobuf) через HTTP-соединение? Как бы я отправлял новые данные клиенту с сервера?