API типа REST для не веб-приложений. Это хорошая идея? - PullRequest
2 голосов
/ 15 сентября 2008

Мы разрабатываем промежуточный SDK на C ++ и Java для использования в качестве библиотеки / DLL, например, разработчиками игр, разработчиками анимационного программного обеспечения, разработчиками Avatar для улучшения своих продуктов.

Создав типичный API с использованием определенных вызовов для определенных функций, я рассматриваю возможность упрощения API с помощью интерфейса API типа REST (GET, PUT, POST, DELETE) или типа CRUD (CREATE, READ, UPDATE, DELETE).

Это будет работать аналогично REST API типа клиент-сервер, где есть только 4 возможных вызова API, но они могут принимать гибкие параметры.

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

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

До сих пор я не видел, чтобы эта система использовалась вне клиент-серверных приложений веб-типа, поэтому мой вопрос таков: это осуществимая идея?

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

Ответы [ 2 ]

3 голосов
/ 15 сентября 2008

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

Вы также выразили обеспокоенность тем, найдет ли разработчик игры простой в использовании RESTful API. Я был бы сомнительным. Я реализовал множество веб-сервисов RESTful и помог многим разработчикам ускорить как их создание, так и их использование, и концептуальный скачок, необходимый для понимания REST, может оказаться существенным для человека, который годами погружался в процедурные API. Я думаю, что разработчики игр, в частности, будут очень сильно связаны с процедурными API, и попытка принять другую парадигму, независимо от ее преимуществ, может оказаться чрезвычайно трудной.

1 голос
/ 23 июля 2009

Помните, что REST не является специфичным для HTTP и не зависит только от 4 HTTP-глаголов. Глаголы, которые вы имеете и можете использовать, зависят от того, какой протокол вы используете.

...