An open API service indexing awesome lists of open source software.

https://github.com/aserto-dev/service-host

Code for creating and managing services
https://github.com/aserto-dev/service-host

Last synced: 5 months ago
JSON representation

Code for creating and managing services

Awesome Lists containing this project

README

          

# Service-host package

This is a very basic package that allows users to create and manage GRPC and REST services.

The service factory allows creating a service instance based on the API configuration.
The service manager allows controlling multiple services and provides basic dependency management.

Example of a very basic eds reader service creation and start:
```
...
edgeAPI := builder.API{}
edgeAPI.GRPC.ListenAddress = "localhost:8080"
edgeAPI.Gateway.ListenAddress = "localhost:8081"

edgeDir, err := eds.New(&directory.Config{DBPath: "/tmp/my.db", Seed: true}, &logger)
if err != nil {
log.Fatal(err)
}

edgeReader, err := factoryInstance.CreateService(&edgeAPI, opts, func(server *grpc.Server) {
reader.RegisterReaderServer(server, edgeDir)
}, func(ctx context.Context, mux *runtime.ServeMux, grpcEndpoint string, opts []grpc.DialOption) error {
return reader.RegisterReaderHandlerFromEndpoint(ctx, mux, grpcEndpoint, opts)
}, true)

if err != nil {
log.Fatal(err)
}
managerInstance.AddGRPCServer(edgeReader)
managerInstance.StartServers(ctx)
...
```