Нативная библиотека PHP Stripe против использования простого cURL

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

Stripe API организован вокруг REST. Наш API разработан таким образом, чтобы иметь предсказуемые URL-адреса, ориентированные на ресурсы, и использовать коды ответов HTTP для индикации ошибок API. Мы используем встроенные функции HTTP, такие как HTTP-аутентификация и HTTP-глаголы, которые могут быть поняты готовыми HTTP-клиентами, и мы поддерживаем совместное использование ресурсов из разных источников, чтобы вы могли безопасно взаимодействовать с нашим API со стороны клиента. веб-приложение (хотя вы должны помнить, что вы никогда не должны раскрывать свой секретный ключ API в клиентском коде любого общедоступного веб-сайта). JSON будет возвращен во всех ответах от API, включая ошибки (хотя, если вы используете привязки API, мы преобразуем ответ в соответствующий объект для конкретного языка).

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

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

Теперь, прежде чем я на самом деле реализовал свой собственный клиент cURL для их HTTP API, я потратил пару минут, чтобы просмотреть исходные коды их библиотек PHP, и они, кажется, делают именно это: обертывают функции cURL, выдают ошибки, выставляют объективированные ответы и т. д. .

Тогда возникает вопрос: стоит ли просто использовать их библиотеку, даже если я знаю, что буду загружать много классов, которые я не буду использовать, или мне следует написать свою собственную оболочку с cURL вокруг их REST API?

Учтите, что этот вопрос пришел мне в голову, потому что мы используем другие сервисы (например, TangoCard), и большинство из них устарели «собственными» библиотеками, предпочитая использовать любую вашу любимую клиентскую библиотеку HTTP и просто использовать REST API.

Спасибо!


person Gustavo Rubio    schedule 04.03.2014    source источник
comment
используйте их библиотеку, потому что она была отлажена во многих тестах и ​​​​фактическом использовании в производстве, чего действительно трудно достичь, даже если вы создаете свой собственный клиент. когда они обновляют свой API, они будут тестировать устаревший API на максимально возможную обратную совместимость. дополнительные функции не являются ударом по производительности, поскольку их API очень скудный и очень хорошо работает в приложениях корпоративного уровня.   -  person Sam    schedule 04.03.2014


Ответы (2)


Загрузка классов почти не проблема с точки зрения производительности, особенно если вы используете APC. Я думаю, что время, сэкономленное за счет использования того, что они вам дают, полностью оправдывает небольшую потерю производительности из-за загрузки их классов.

Однако, если их код хорошо написан, вам не следует загружать классы, которые вы на самом деле не используете.

Кроме того, если они будут поддерживать свою библиотеку, будет легче получать обновления с течением времени. Например, мы использовали наши собственные API Facebook, которые использовали curl, и нам пришлось остановиться из-за их большого количества обновлений и критических изменений с течением времени.

person Daniel Williams    schedule 04.03.2014
comment
Это то, что я думал, что на самом деле нет проблем, связанных с производительностью, но опять же, почему некоторые поставщики услуг отказываются от своих собственных API в пользу интерфейсов RESTful и избавляются от собственного зуда? - person Gustavo Rubio; 04.03.2014
comment
Я думаю, что это может быть связано с ленью или отсутствием ресурсов. Для них меньше работы, если им не нужно публиковать и поддерживать API. Однако очень крупные провайдеры, как правило, имеют хорошие API, которые хорошо поддерживаются. - person Daniel Williams; 04.03.2014

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

Разница в производительности, даже без систем кэширования, таких как APC, должна быть совершенно незначительной, и если ваш масштаб не сравним с Amazon или другими крупными интернет-магазинами, я вряд ли сомневаюсь, что вам следует сосредоточить свои ресурсы на оптимизации этой части кода.
Кроме того, использование официальной библиотеки упрощает поддержку и обновление кода в ответ на изменения со стороны Stripe.

person ItalyPaleAle    schedule 04.03.2014