на каком языке должен быть написан API? - PullRequest
3 голосов
/ 26 мая 2011

Мы хотим реализовать API, у нас есть база данных, расположенная на центральном сервере, и сеть из множества компьютеров.На этих компьютерах в будущем будет разработано несколько локальных программ с использованием разных языков программирования, некоторые на Java, некоторые на Perl, C ++ и т. Д.

Эти локальные программы должны иметь доступ к функциям API.и взаимодействовать с базой данных.Так на каком языке должен быть написан API?так что это будет обязательным для других языков.Есть ли конкретная архитектура, которая должна быть реализована?Есть ли какая-нибудь ссылка, которая предоставила бы полезную информацию об этом?

Ответы [ 2 ]

3 голосов
/ 26 мая 2011

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

Если в API есть бизнес-логика, есть два подхода ...

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

Другой выбор - использовать гибрид двух. REST API для доступа к базе данных, а также библиотека бизнес-уровня, написанная на нескольких языках. Идея состоит в том, что у вас есть бизнес-логика на стороне приложения, но достаточно просто, чтобы вы могли написать «клиентскую библиотеку» на нескольких языках, которая знает, как вызывать REST API, а затем применять бизнес-логику к полученным результатам. , Если предположить, что бизнес-логика не слишком сложна (то есть ограничена способами объединения / просмотра данных базы данных), то это не плохое решение.

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

1 голос
/ 26 мая 2011

Я бы прибегнул к веб-сервисам. Не имеет значения, какой язык вы используете, если у вас есть среда для взаимодействия с веб-сервисами, вы хороши. В зависимости от ваших потребностей вы можете использовать простой REST API или использовать SOAP / WSDL и тому подобное.

...