Service Wrappers
================

November 1, 2022
https://stefan.vanburen.xyz/til/service-wrappers/


TIL of [Service Wrappers][]
a technique I've used in the past but have never had a name for.
It's essentially an approach to wrapping external APIs.
From the article:

> * Methods should be named in the language of the service, not the language of the app.
> * Arguments should use the domain of the service, not the domain of the app.
> * Arguments should be whatever type is directly needed by the service, so passing in complex stuff like Active Record should be avoided.
> * The return value should not be a complex object from the third party, but ideally only what data a caller will need (often nothing at all). If it must be a complex object, its name or properties should be in the domain of the service.

The article is written from a Rails perspective,
but is broadly useful ---
always nice to have a name for something useful!

[Service Wrappers]: https://naildrivin5.com/blog/2022/10/31/wrap-third-party-apis-in-service-wrappers-to-simplify-your-code.html
