.. _config: Configs in service.yaml ======================= Contents under following nodes, can be modified and reloaded at runtime, without restarting your service:: urlmapping: interceptor: preprocessor: postprocessor: hijacker: convertor: errorhandler: .. code-block:: yaml config: # [Optional] The runtime environment, # Default: development # Values: production | development environment: production # [Optional]The Path to which turbo logs, can be absolute or relative, if not set, no log is logged. # Default: log turbo_log_path: log # project root directory, without package path file_root_path: /a/b/c # package path package_path: com/myservice # The port http server listens http_port: 8081 # The grpc service name, MUST be a CamelCase name, usually end with "Service" grpc_service_name: YourService # The grpc server entry point grpc_service_address: 127.0.0.1:50051 # The thrift service name, MUST be a CamelCase name, usually end with "Service" thrift_service_name: YourService # The thrift server entry point thrift_service_address: 127.0.0.1:50052 # Only valid for grpc service. # By default, the Response message is marshaled by jsonpb.Marshaler, and returned directly. # There're some protobuf "problem" with this json: # (a) protobuf parse int64 as string: e.g. {"int64_value":"123"} # (b) a Key with a nil Ptr value is missing in the json. # If this option is set to "true", then Turbo will change the json by: # 1, if struct field type is 'int64', then change the value in Json into a number # 2, if field type is 'Ptr', and field value is 'nil', then set "[key_name]":null in Json # 3, if any key in json is missing, set zero value to that key # Notice: 'map' is not filtered (yet). filter_proto_json: true # Valid only if "filter_proto_json: true", # Default value: true # If this option is set to "true", protobuf message fields with zero values will show in Json. # As [Golang spec](https://golang.org/ref/spec#The_zero_value) says, zero values are # "false for booleans, 0 for integers, 0.0 for floats, "" for strings, # and nil for pointers, functions, interfaces, slices, channels, and maps". filter_proto_json_emit_zerovalues: true # Valid only if "filter_proto_json: true", # Default value: true # If this option is set to "true", int64 values will be shown as number in Json, instead of string filter_proto_json_int64_as_number: true # This mapping is the core function of Turbo. # This mapping tells Turbo how to proxy a HTTP request to a grpc/thrift entry point. # The format is "HTTP_METHOD URL SERVICE_METHOD_NAME". # Trubo use that awsome [gorilla mux](github.com/gorilla/mux) as router, it also support variables in URL. urlmapping: - GET,POST /hello YourService SayHello - GET /eat_apple/{num:[0-9]+} YourService EatApple # Register Turbo components via turbo.Server.RegisterComponent("name", component) # As a convention, "name" is the same with the component struct|func's name (e.g. "LogInterceptor"). # Register interceptors interceptor: - GET,POST /hello TestInterceptor,LogInterceptor # Register preprocessors preprocessor: - GET /hello registeredPreProcessor # Register postprocessors postprocessor: - GET /hello registeredPostProcessor # Register hijackers hijacker: - GET /hello registeredHijacker # Register convertors convertor: - CommonValues registeredConvertor # Register error handler errorhandler: registeredErrorHandler