D10005 - @QueryParam…Parameters

This tutorial focus on query string parameter usage in zero system, here zero system support two types of query string parameters.

Also zero system will process encoded parameters automatically and you could pass above two format of parameters.

Demo projects:

1. Source Code

Here are example for @QueryParam annotation in zero system:

package up.god.micro.params;

import io.vertx.up.annotations.EndPoint;

import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.QueryParam;

@EndPoint
@Path("/api")
public class QueryParamExecutor {

    @Path("param/query")
    @GET
    public String sayQuery(
            @QueryParam("name") final String name) {
        return "Hello: Get " + name;
    }

    @Path("param/query")
    @POST
    public String sayPostQuery(
            @QueryParam("name") final String name) {
        return "Hello: Post " + name;
    }

    @Path("param/query-encode")
    @GET
    public String sayEncodeQuery(
            @QueryParam("name") final String name) {
        return "Hello: Encoded " + name;
    }
}

2. Console

Then you should see the logs in console as following:

......
[ ZERO ] ( 3 Event ) The endpoint up.god.micro.params.QueryParamExecutor scanned 3 events of Event,\
    will be mounted to routing system.
......
[ ZERO ] ( Uri Register ) "/api/param/query" has been deployed by ZeroHttpAgent, Options = Route[...
[ ZERO ] ( Uri Register ) "/api/param/query" has been deployed by ZeroHttpAgent, Options = Route[...
[ ZERO ] ( Uri Register ) "/api/param/query-encode" has been deployed by ZeroHttpAgent, Options = Route[...
......

3. Testing

3.1. Get Request

**URI: **http://localhost:6083/api/param/query?name=Lang Yu

**Method: **GET

Response:

{
    "data": "Hello: Get Lang Yu"
}

3.2. Post Request

**URI: **http://localhost:6083/api/param/query?name=Lang Yu

**Method: **POST

Response:

{
    "data": "Hello: Post Lang Yu"
}

3.3. Get Request ( Encoded )

URI: http://localhost:6083/api/param/query-encode?name=Lang Yu

Method: GET

Response:

{
    "data": "Hello: Encoded Lang Yu"
}

4. Summary

Zero system support both Plain Text & Encoded parameters in query string, you could annotated the parameters with JSR311 annotations directly and then in your application you can use these parameters directly.