在工作中学到的经验,感谢经理和同事的帮助,默默的祝你们都好~
在实际工作中,会碰到请求A服务端,A需要带着参数请求B服务端,B返回给A,A返回给客户端。
那么我们面临的问题是什么呢?
就是可能A服务端会根据B的服务端的响应和请求写一大堆没用的对象XXXRequest和Result来返回给客户端。
简而言之,其实A只需要做代理就可以了。携带上A服务端必须的参数,转发至B服务端。
更是对 .net core 终结点的一个理解吧。希望对大家有帮助。
有三种方式进行,其实就是一种。看需求
Startup.cs
Configure
app.UseEndpoints(endpoints =>
{
//endpoints.MapGet("/", async context =>
//{
// await context.Response.WriteAsync("Hello World!");
//});
//endpoints.Map("/test/{*name}", async (context) =>
//{
// await context.Response.WriteAsync($"Hello ~, {context.Request.RouteValues["name"]}");
//});
endpoints.Map("/test/{*name}", Proccessor.Process);
});
其中Url模版匹配 /test/下所有的url,这里是一个坑。{*name}请务必这么写。取url的时候,用context下req的
RouteValues[key]
public static class Proccessor
{
public async static Task Process(HttpContext context)
{
// DI context.RequestServices.GetService();
// do something NB
await context.Response.WriteAsync($"Hello ~, {context.Request.RouteValues["name"]}");
}
}
在开发Api的时候,需要不断的思考,将通用的抽出来,不然会越写越多。不断的提高代码的质量,可维护性。
本文分享了在工作中学到的微服务代理模式经验,通过具体案例解析如何避免编写冗余对象,实现A服务端作为B服务端的高效代理,同时介绍了.netcore终结点的理解与应用,强调了代码质量和可维护性的重要性。
534

被折叠的 条评论
为什么被折叠?



