• Soul是对接Http请求的网关,所以对请求参数有自己的规定。
    • 请求参数格式如下:网关的请求参数为:
    1. package org.dromara.soul.web.request;
    2. import lombok.Data;
    3. import org.dromara.soul.common.constant.Constants;
    4. import org.dromara.soul.common.enums.HttpMethodEnum;
    5. import org.dromara.soul.common.enums.RpcTypeEnum;
    6. import org.springframework.http.server.reactive.ServerHttpRequest;
    7. import java.io.Serializable;
    8. /**
    9. * the soul request DTO .
    10. *
    11. * @author xiaoyu(Myth)
    12. */
    13. @Data
    14. public class RequestDTO implements Serializable {
    15. /**
    16. * is module data.
    17. */
    18. private String module;
    19. /**
    20. * is method name .
    21. */
    22. private String method;
    23. /**
    24. * is rpcType data. now we only support "http","dubbo" "motan","grpc".
    25. * {@linkplain RpcTypeEnum}
    26. */
    27. private String rpcType;
    28. /**
    29. * httpMethod now we only support "get","post" .
    30. * {@linkplain HttpMethodEnum}
    31. */
    32. private String httpMethod;
    33. /**
    34. * this is sign .
    35. */
    36. private String sign;
    37. /**
    38. * timestamp .
    39. */
    40. private String timestamp;
    41. /**
    42. * appKey .
    43. */
    44. private String appKey;
    45. /**
    46. * content is json data.
    47. */
    48. private String content;
    49. /**
    50. * extInfo is json data .
    51. */
    52. private String extInfo;
    53. /**
    54. * ServerHttpRequest transform RequestDTO .
    55. *
    56. * @param request {@linkplain ServerHttpRequest}
    57. * @return RequestDTO request dto
    58. */
    59. public static RequestDTO transform(final ServerHttpRequest request) {
    60. final String module = request.getHeaders().getFirst(Constants.MODULE);
    61. final String method = request.getHeaders().getFirst(Constants.METHOD);
    62. final String appKey = request.getHeaders().getFirst(Constants.APP_KEY);
    63. final String httpMethod = request.getHeaders().getFirst(Constants.HTTP_METHOD);
    64. final String rpcType = request.getHeaders().getFirst(Constants.RPC_TYPE);
    65. final String sign = request.getHeaders().getFirst(Constants.SIGN);
    66. final String timestamp = request.getHeaders().getFirst(Constants.TIMESTAMP);
    67. RequestDTO requestDTO = new RequestDTO();
    68. requestDTO.setModule(module);
    69. requestDTO.setMethod(method);
    70. requestDTO.setAppKey(appKey);
    71. requestDTO.setHttpMethod(httpMethod);
    72. requestDTO.setRpcType(rpcType);
    73. requestDTO.setSign(sign);
    74. requestDTO.setTimestamp(timestamp);
    75. return requestDTO;
    76. }
    77. }
    • 参数都需要通过Http请求头进行设置,请求头的字段在使用文档中介绍。当然用户也可以自己定义额外增加字段。