Although the question appears subjective, I suspect there is a right way and wrong way to do this. I will explain.
The practice at my company has been to haphazardly mingle cURL calls to external APIs into a Magento Module's model folder.
A better way of handling this is to abstract API connection to an external class. It is the external classes job to "know" how to connect to the actual service, when to use a different URL for testing and so on.
My question is where in a Magento module should such a class live? It's clearly not part of the data model, nor is it a Block or Controller.
Should I create an "Api" folder and put whatever classes I need in there, named "Company_Module_Api_Zendesk"?
If yes, and I do that, will the autoloader be able to handle it? Can I instantiate such a class by using "new Company_Module_Api_Zendesk()" or do I have to require() it myself?
If this question must be closed due to excessive subjectivity, could someone point me towards a relevant guide or tutorial?