I'm writing a Gateway class that wraps access to a web service which provides information about a player's item inventory in a video game. This web service returns a variety of information, however I do not need to use all of it.The only thing I need to know from the web service is if a given game item is present in the player's inventory. This logic would be simple to implement: I would iterate over the player's items, trying to find a match. However, herein lies my primary concern: is this too much work for a Gateway to do? Would it be better practice to have the Gateway merely extract the list of items, and then handle the checking elsewhere? This would seem silly to me, because my program really only cares about the existence of a particular item and I don't really need a list of every item.
Is this too much work for a Gateway to do?
design patterns;domain driven design
In general, a gateway class should translate from the interface you have to the interface you want.  If the interface you want is a simple presence check, by all means write it that way.I would just caution you as the requirements change and the application grows, to not be afraid to reevaluate that decision.  If your gateway class starts looking too large, or like it's forcing too many abstraction layers together, split it into one that retrieves the list and one that filters/searches the list.  Even if you have only one class, these should at least be separate functions.