Class THttpServiceBuilder


  • public final class THttpServiceBuilder
    extends Object
    A fluent builder to build an instance of THttpService. This builder allows to bind multiple thrift service implementations along with mixing TMultiplexed protocol to a route.

    Example

    
     Server server =
         Server.builder()
               .http(8080)
               .service("/", THttpService.builder()
                                         .addService(new FooService())              // foo() method
                                         .addService(new BarService())              // bar() method
                                         .addService("foobar", new FooBarService()) // TMultiplexed service
                                         .build())
               .build();
     

    When the thrift request has a method foo() then FooService.foo() handles the request and similarly when thrift request has a method bar() then BarService.bar() handles the request. And when the service name is "foobar" then FooBarService

    See Also:
    THttpService, ThriftCallService
    • Method Detail

      • addService

        public THttpServiceBuilder addService​(String name,
                                              Object implementation)
        Adds a new TMultiplexed service to the builder.
        Parameters:
        name - name of the service.
        implementation - an implementation of *.Iface or *.AsyncIface service interface generated by the Apache Thrift compiler.
      • addService

        public THttpServiceBuilder addService​(Object implementation)
        Adds a new service implementation to the builder.
        Parameters:
        implementation - an implementation of *.Iface or *.AsyncIface service interface generated by the Apache Thrift compiler
      • otherSerializationFormats

        public THttpServiceBuilder otherSerializationFormats​(com.linecorp.armeria.common.SerializationFormat otherSerializationFormat)
        Adds other SerializationFormat to the builder. Current supported SerializationFormats are ThriftSerializationFormats.values(). If nothing is specified then all the SerializationFormat.values()s are added.

        Currently, the only way to specify a serialization format is by using the HTTP session protocol and setting the "Content-Type" header to the appropriate SerializationFormat.mediaType().

      • otherSerializationFormats

        public THttpServiceBuilder otherSerializationFormats​(Iterable<com.linecorp.armeria.common.SerializationFormat> otherSerializationFormats)
        Adds other SerializationFormat to the builder. Current supported SerializationFormats are ThriftSerializationFormats.values(). If nothing is specified then all the SerializationFormat.values()s are added.

        Currently, the only way to specify a serialization format is by using the HTTP session protocol and setting the "Content-Type" header to the appropriate SerializationFormat.mediaType().

      • defaultSerializationFormat

        public THttpServiceBuilder defaultSerializationFormat​(com.linecorp.armeria.common.SerializationFormat defaultSerializationFormat)
        Adds the default serialization format which will be used when the client does not specify one in request.

        Currently, the only way to specify a serialization format is by using the HTTP session protocol and setting the "Content-Type" header to the appropriate SerializationFormat.mediaType().

      • decorate

        public THttpServiceBuilder decorate​(Function<? super com.linecorp.armeria.server.RpcService,​? extends com.linecorp.armeria.server.RpcService> decoratorFunction)
        A Function<? super RpcService, ? extends RpcService> to decorate the RpcService.