2017-01-08 27 views
0

Итак, у меня был разговор, и мне пришло в голову - что такое «богатый» API? Что такое «плохой» API? Это термин, часто возникающий вокруг, и он почти чувствует, что это может быть маркетинговая речь, и я хотел бы знать, имеет ли она какое-то программное значение, например «RESTful API».Что делает API «богатым»?

+1

Это, вероятно, лучше спросить на http://softwareengineering.stackexchange.com/ –

+0

@ MathiasR.Jessen Я могу видеть ваш аргумент, если «богатый» не является чем-то, на что можно ответить конкретно. Я сравнивал его с RESTful API, что можно определить в контексте * этого * сайта. – RonLugge

+0

@ MathiasR.Jessen нет, он плохо приспособлен там по тем же причинам, что и он плохо подходит. Рекомендуемое чтение: ** [Что входит в состав Software Engineering (ранее известный как Programmers)? Руководство по переполнению стека] (http://meta.softwareengineering.stackexchange.com/q/7182/31260) ** – gnat

ответ

4

Во-первых, этот вопрос, вероятно, слишком широк для StackOverflow, и ответ довольно субъективен.

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

Например, представьте, что вы создаете API для логических вычислений. Теоретически API, который содержит только одну функцию NAND (a, b), будет достаточным для выполнения любых возможных логических вычислений. Вы можете выразить все другие логические операции в терминах NAND, например. AND(a,b) = NAND(NAND(a,b), NAND(a,b)), но это было бы довольно громоздким и, вероятно, неэффективным. Таким образом, однофункциональный NAND API будет достаточным, но определенно не богатым. Богатый API, помимо NAND, также будет определять такие вещи, как OR (a, b), AND (a, b) и XOR (a, b) и, возможно, некоторые другие.