Ce contenu n'est pas disponible dans la langue sélectionnée.
Chapter 62. Platform HTTP
This extension allows for creating HTTP endpoints for consuming HTTP requests.
It is built on top of the Eclipse Vert.x HTTP server provided by the quarkus-vertx-http extension.
62.1. What’s inside Copier lienLien copié sur presse-papiers!
-
Platform HTTP component, URI syntax:
platform-http:path
Please refer to the above link for usage and configuration details.
62.2. Maven coordinates Copier lienLien copié sur presse-papiers!
Create a new project with this extension on code.quarkus.redhat.com
Or add the coordinates to your existing project:
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-platform-http</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-platform-http</artifactId>
</dependency>
62.3. Usage Copier lienLien copié sur presse-papiers!
62.3.1. Basic Usage Copier lienLien copié sur presse-papiers!
Serve all HTTP methods on the /hello endpoint:
from("platform-http:/hello").setBody(simple("Hello ${header.name}"));
from("platform-http:/hello").setBody(simple("Hello ${header.name}"));
Serve only GET requests on the /hello endpoint:
from("platform-http:/hello?httpMethodRestrict=GET").setBody(simple("Hello ${header.name}"));
from("platform-http:/hello?httpMethodRestrict=GET").setBody(simple("Hello ${header.name}"));
62.3.2. Using platform-http via Camel REST DSL Copier lienLien copié sur presse-papiers!
To be able to use Camel REST DSL with the platform-http component, add camel-quarkus-rest to your pom.xml:
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-rest</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-rest</artifactId>
</dependency>
Then you can use the Camel REST DSL:
62.3.3. Handling multipart/form-data file uploads Copier lienLien copié sur presse-papiers!
You can restrict the uploads to certain file extensions by white listing them:
62.3.4. Securing platform-http endpoints Copier lienLien copié sur presse-papiers!
Quarkus provides a variety of security and authentication mechanisms which can be used to secure platform-http endpoints. Refer to the Quarkus Security documentation for further details.
Within a route, it is possible to obtain the authenticated user and its associated SecurityIdentity and Principal:
Also check the quarkus.http.body.* configuration options in Quarkus documentation, esp. quarkus.http.body.handle-file-uploads, quarkus.http.body.uploads-directory and quarkus.http.body.delete-uploaded-files-on-end.
62.3.5. Implementing a reverse proxy Copier lienLien copié sur presse-papiers!
Platform HTTP component can act as a reverse proxy, in that case Exchange.HTTP_URI, Exchange.HTTP_HOST headers are populated from the absolute URL received on the request line of the HTTP request.
Here’s an example of a HTTP proxy that simply redirects the Exchange to the origin server.
from("platform-http:proxy")
.toD("http://"
+ "${headers." + Exchange.HTTP_HOST + "}");
from("platform-http:proxy")
.toD("http://"
+ "${headers." + Exchange.HTTP_HOST + "}");
62.4. Additional Camel Quarkus configuration Copier lienLien copié sur presse-papiers!
62.4.1. Platform HTTP server configuration Copier lienLien copié sur presse-papiers!
Configuration of the platform HTTP server is managed by Quarkus. Refer to the Quarkus HTTP configuration guide for the full list of configuration options.
To configure SSL for the Platform HTTP server, follow the secure connections with SSL guide. Note that configuring the server for SSL with SSLContextParameters is not currently supported.
62.4.2. Character encodings Copier lienLien copié sur presse-papiers!
Check the Character encodings section of the Native mode guide if you expect your application to send or receive requests using non-default encodings.