You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dubbo.apache.org by ba...@apache.org on 2020/08/09 12:48:13 UTC
[dubbo-go] 01/13: optimized code
This is an automated email from the ASF dual-hosted git repository.
baze pushed a commit to branch 1.4
in repository https://gitbox.apache.org/repos/asf/dubbo-go.git
commit 8e85afdf48849223cbc1ea86f63ae2d58a41b40a
Author: Patrick <dr...@foxmail.com>
AuthorDate: Tue Mar 31 19:58:13 2020 +0800
optimized code
---
protocol/rest/server/server_impl/go_restful_server.go | 15 +++++++--------
1 file changed, 7 insertions(+), 8 deletions(-)
diff --git a/protocol/rest/server/server_impl/go_restful_server.go b/protocol/rest/server/server_impl/go_restful_server.go
index 69f36a5..812699b 100644
--- a/protocol/rest/server/server_impl/go_restful_server.go
+++ b/protocol/rest/server/server_impl/go_restful_server.go
@@ -81,29 +81,28 @@ func (grs *GoRestfulServer) Start(url common.URL) {
}
func (grs *GoRestfulServer) Deploy(invoker protocol.Invoker, restMethodConfig map[string]*config.RestMethodConfig) {
- svc := common.ServiceMap.GetService(invoker.GetUrl().Protocol, strings.TrimPrefix(invoker.GetUrl().Path, "/"))
for methodName, config := range restMethodConfig {
- // get method
- method := svc.Method()[methodName]
- argsTypes := method.ArgsType()
- replyType := method.ReplyType()
ws := new(restful.WebService)
ws.Path(config.Path).
Produces(strings.Split(config.Produces, ",")...).
Consumes(strings.Split(config.Consumes, ",")...).
- Route(ws.Method(config.MethodType).To(getFunc(methodName, invoker, argsTypes, replyType, config)))
+ Route(ws.Method(config.MethodType).To(getFunc(methodName, invoker, config)))
grs.container.Add(ws)
}
}
-func getFunc(methodName string, invoker protocol.Invoker, argsTypes []reflect.Type,
- replyType reflect.Type, config *config.RestMethodConfig) func(req *restful.Request, resp *restful.Response) {
+func getFunc(methodName string, invoker protocol.Invoker, config *config.RestMethodConfig) func(req *restful.Request, resp *restful.Response) {
return func(req *restful.Request, resp *restful.Response) {
var (
err error
args []interface{}
)
+ svc := common.ServiceMap.GetService(invoker.GetUrl().Protocol, strings.TrimPrefix(invoker.GetUrl().Path, "/"))
+ // get method
+ method := svc.Method()[methodName]
+ argsTypes := method.ArgsType()
+ replyType := method.ReplyType()
if (len(argsTypes) == 1 || len(argsTypes) == 2 && replyType == nil) &&
argsTypes[0].String() == "[]interface {}" {
args = getArgsInterfaceFromRequest(req, config)