FixedPromptMiddleware.cs 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. using NetTaste;
  2. using System.Text.Encodings.Web;
  3. using System.Text.Json;
  4. using System.Text.Unicode;
  5. namespace OASystem.API.Middlewares
  6. {
  7. /// <summary>
  8. /// api所有入口固定提示
  9. /// </summary>
  10. public class FixedPromptMiddleware
  11. {
  12. private readonly RequestDelegate _next;
  13. public FixedPromptMiddleware(RequestDelegate next)
  14. {
  15. _next = next;
  16. }
  17. public async Task InvokeAsync(HttpContext context)
  18. {
  19. // 检查是否为 API 请求
  20. if (context.Request.Path.StartsWithSegments("/api"))
  21. {
  22. // 设置响应内容类型
  23. context.Response.ContentType = "text/plain";
  24. //固定提示格式
  25. var response = new JsonView()
  26. {
  27. Code = 400,
  28. Msg = "紧急通知:因明年接入AI接口,需服务器框架升级及数据库数据备份,OA系统pc端及手机端将暂停使用,我们尽量在48小时内升级完成并恢复使用。"
  29. };
  30. // 写入固定的提示信息
  31. await context.Response.WriteAsync(System.Text.Json.JsonSerializer.Serialize(response,new JsonSerializerOptions
  32. {
  33. Encoder = JavaScriptEncoder.Create(UnicodeRanges.All)
  34. }));
  35. // 不再调用后续中间件
  36. return;
  37. }
  38. // 调用后续中间件
  39. await _next(context);
  40. }
  41. }
  42. }