TDSRouter.h 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. //
  2. // TDSRouter.h
  3. // TDSCommon
  4. //
  5. // Created by Insomnia on 2020/11/27.
  6. //
  7. #import <Foundation/Foundation.h>
  8. NS_ASSUME_NONNULL_BEGIN
  9. extern NSString *const TDSRouterURL;
  10. extern NSString *const TDSRouterResp;
  11. extern NSString *const TDSRouterParams;
  12. typedef void (^TDSRouterHandler)(NSDictionary *params);
  13. typedef void (^TDSRouterResponse)(NSDictionary *response);
  14. /// TDS路由
  15. @interface TDSRouter : NSObject
  16. /// 注册路由
  17. /// @param url 路由路径,例如tds://service,并支持带参数路由tds://service/:user/:age
  18. /// @param handler 接收参数,包含了注册的 URL 中对应的变量, 如注册的 URL 为ds://service/:user那么,就会传一个 @{@"user": "tds_name"} 这样的字典过来
  19. + (void)registerServiceWithURL:(NSString *)url handler:(TDSRouterHandler)handler;
  20. /// 反注册
  21. /// @param url 路由路径
  22. + (void)unregisterServiceWithUrl:(NSString *)url;
  23. /// 请求路由
  24. /// @param url 路由路径
  25. + (void)requestWithURL:(NSString *)url;
  26. /// 请求路由
  27. /// @param url 路由路径
  28. /// @param params 请求参数
  29. + (void)requestWithURL:(NSString *)url params:(NSDictionary * _Nullable)params;
  30. /// 请求路由
  31. /// @param url 路由路径
  32. /// @param params 请求参数
  33. /// @param response 返回值字典
  34. + (void)requestWithURL:(NSString *)url params:(NSDictionary * _Nullable)params response:(TDSRouterResponse _Nullable)response;
  35. /// 是否存在服务
  36. /// @param url 路由路径
  37. + (BOOL)hasServiceWithURL:(NSString *)url;
  38. /// 自动拼接路由参数
  39. /// @param url 路由路径,例如tds://service/:user/:age
  40. /// @param params 数组顺序要与路由参数顺序对应
  41. /// @return 生成URL 字符串
  42. + (NSString *)generateWithURL:(NSString *)url params:(NSArray *)params;
  43. @end
  44. NS_ASSUME_NONNULL_END