Five methods within my API call the same third-party method. In trying to abide by DRY, does it make sense to wrap this call in a private method?
Is wrapping third-party API calls a design smell?
dry;code smell
Actually, I think wrapping or isolating third-party api's in a shim layer is good design. There are a number of advantage in doing this.For instance, what happens if you change operating systems assuming you are not developing in managed environment like .NET (Which basically provides the shim layer for you)? If you put a shim layer over of all the system calls like message queues, mutexs, etc, this process is much less painful. I used the operating system example, because I have done this, but it applies to any type of swap-able code module/library. As another example, suppose you use a graphics library and at some point decide to change your vendor. The shim layer essentially allows the main application to run in a number of different environments possibly without any other changes besides what the shim layer is actually doing. This is massively advantageous when you are developing cross platform applications. Plus, everything that needs to change is on one convenient spot.    