using System.Threading.Tasks;
using PipServices3.Commons.Config;
using PipServices3.Commons.Refer;
using PipServices3.Rpc.Services;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Routing;
public class HelloFriendRestService: RestService
{
private HelloFriendController _controller;
// swagger
private string _swaggerContent;
private string _swaggerPath;
public HelloFriendRestService(): base()
{
_baseRoute = "/hello_friend";
var controllerDescriptor = new Descriptor("hello-friend", "controller", "*", "*", "1.0");
_dependencyResolver.Put("controller", controllerDescriptor);
}
public override void Configure(ConfigParams config)
{
base.Configure(config);
// swagger
_swaggerContent = config.GetAsNullableString("swagger.content");
_swaggerPath = config.GetAsNullableString("swagger.path");
}
public override void SetReferences(IReferences references)
{
base.SetReferences(references);
_controller = _dependencyResolver.GetOneRequired<HelloFriendController>("controller");
}
public override void Register()
{
RegisterRoute("GET", "/greeting", this.Greeting);
// swagger
if (_swaggerContent != null)
RegisterOpenApiSpec(_swaggerContent);
if (_swaggerPath != null)
RegisterOpenApiSpecFromFile(_swaggerPath);
}
public async Task Greeting(HttpRequest req, HttpResponse res, RouteData routeData)
{
var name = req.Query["name"];
var result = _controller.Greeting(name);
await SendResultAsync(res, result);
}
}