Hi Yeah we can maybe add an option to allow setting the hostname from data via the HttpRequest. Pontus you are welcome to log a JIRA with details.
On Wed, Jul 18, 2018 at 10:18 AM, Pontus Ullgren <[email protected]> wrote: > Hi, > > I think the most common way to get the host and port in servlet based > frameworks is to use the servlet HTTP request object. > > This also allows for the container to handle the situation when it runs > behind a loadbalancer that sets the X-Forward headers. > > As such I think it would be good to set these values for each request and > not just on startup since two different clients might use different > hostnames or even ports to call the same service. > > Just my €0.02 > > Best regards > Pontus Ullgren > > On Tue, 17 Jul 2018, 21:47 Claus Ibsen, <[email protected]> wrote: > >> Hi >> >> We can possible look at allowing to plugin a custom host name >> resolver, so you can use your own implementation, or we can provide a >> "none" that dont set one, and then possible swagger wont output it. >> >> For getting port number from servlet then AFAIR its not easy. Not sure >> if you can get some details from ENV or JMX to find out which servlet >> engine is running and get details to get port number. Or use some kind >> of initial http request that calls the servlet and then you can maybe >> get the port via some servlet request information. Its been a while >> since I was working with the servlet api, so cant remember on top of >> my head. >> >> But for making camel-swagger not output hostname then we can maybe add >> a "none" implementation. You are welcome to log a JIRA and attempt to >> implement this and provide a PR. We love contributions >> http://camel.apache.org/contributing >> >> On Tue, Jul 17, 2018 at 9:08 PM, Martin Lichtin >> <[email protected]> wrote: >> > Thanks Rafael and Daniel >> > >> > Both of your <restConfiguration> examples don't quite solve the 0.0.0.0 >> > issue, setting an empty "host" unfortunately does not help. >> > >> > However, I learned about "hostNameResolver", so at least I can provide an >> > actual IP address. >> > >> > <restConfiguration component="servlet" bindingMode="json" >> > contextPath="/rest" apiContextPath="doc" enableCORS="true" >> > hostNameResolver="localIp" >> > port="{{port}}"> >> > >> > Still the problem is with the port number. Ideally the RestConfiguration >> > would get the port from the servlet, but not sure how that could work. >> > >> > - Martin >> > >> > >> > >> > On 12.07.2018 22:10, Rafael Soares wrote: >> >> >> >> Hi! >> >> Try the following conf: >> >> >> >> >> >> * <restConfiguration apiContextPath="api-docs" >> component="servlet" >> >> enableCORS="true" host=""> <camel:apiProperty >> >> key="api.title" value="myAPI"/> <camel:apiProperty >> >> key="api.version" value="1.0.0"/> <camel:apiProperty >> key="cors" >> >> value="true"/> <camel:apiProperty key="host" value=""/> >> >> </restConfiguration>* >> >> >> >> Regards. >> >> ________________________ >> >> Rafael Torres Coelho Soares >> >> >> >> >> >> On Thu, Jul 12, 2018 at 4:55 PM Martin Lichtin >> <[email protected]> >> >> wrote: >> >>> >> >>> Anyone know how I can configure <restconfiguration> so the generated >> >>> swagger.json does not set host: "0.0.0.0"? >> >>> >> >>> With this 0.0.0.0 I cannot, for example, import the Swagger directly >> into >> >>> Postman and make calls to the API. >> >>> https://swagger.io/docs/specification/2-0/api-host-and-base-path/ says >> >>> the "host" can be omitted for a more dynamic association. >> >>> >> >>> >> > >> >> >> >> -- >> Claus Ibsen >> ----------------- >> http://davsclaus.com @davsclaus >> Camel in Action 2: https://www.manning.com/ibsen2 >> -- Claus Ibsen ----------------- http://davsclaus.com @davsclaus Camel in Action 2: https://www.manning.com/ibsen2
