How does SilverStripe handle custom API integrations?

I’m new to SilverStripe and would like to understand the best way to integrate third-party APIs. Is it recommended to build custom controllers for API communication, or are there built-in modules that help with this?