I agree. Ideally, the API you end up exposing should be something that you're already using to build services on top of yours (plus or minus a few modifications).
Also, check out Joshua Bloch's excellent presentation on how to design a good API: http://video.google.com/videoplay?docid=-3733345136856180693. One interesting point he makes is that you should avoid exposing a public API until you've successfully built three clients for it.
Also, check out Joshua Bloch's excellent presentation on how to design a good API: http://video.google.com/videoplay?docid=-3733345136856180693. One interesting point he makes is that you should avoid exposing a public API until you've successfully built three clients for it.