Recommend service to expose to external client using HTTP

What’s the recommended out-of-box service that one can provide to external client for sending ff or xml data to our TN. They will be using HTTP with the POST method. I thought of allowing the client to invoke wm.tn:receive service. Or should I create a gateway service and that service would invoke routeXml to TN.

HttpGatewayService
http://host:port/invoke/packageName:HttpGatewayService

or

http://host:port/invoke/wm.tn:receive

i would prefer to create a wrapper (or gateway service) which calls wm.tn/route or receive and expose that service with proper ACLs.
two advantages of wrapper (as i see)

  1. not exposing a system service
  2. exposing our own service means flexibility to add custom codes when required

also you can try using URL aliases if you are on version 8.x

-Deepan