{"id":18702488,"url":"https://github.com/pretty66/gosdk","last_synced_at":"2025-11-09T01:30:34.083Z","repository":{"id":57516620,"uuid":"245765142","full_name":"pretty66/gosdk","owner":"pretty66","description":"gosdk","archived":false,"fork":false,"pushed_at":"2020-06-02T06:41:34.000Z","size":74,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-12-28T05:43:34.139Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pretty66.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-03-08T06:37:07.000Z","updated_at":"2020-06-02T06:41:03.000Z","dependencies_parsed_at":"2022-09-26T18:01:23.808Z","dependency_job_id":null,"html_url":"https://github.com/pretty66/gosdk","commit_stats":null,"previous_names":[],"tags_count":12,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pretty66%2Fgosdk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pretty66%2Fgosdk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pretty66%2Fgosdk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pretty66%2Fgosdk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pretty66","download_url":"https://codeload.github.com/pretty66/gosdk/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239565644,"owners_count":19660154,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-07T11:45:57.157Z","updated_at":"2025-11-09T01:30:34.056Z","avatar_url":"https://github.com/pretty66.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# GO-SDK\n## GO-SDK\n\ngo语言版本的中台服务调用的SDK\n\n### 下载\n* 使用git直接clone到本地的$GOPATH/src下\n\n```bash\nmkdir -p $GOPATH/src/gosdk\ngit clone git@github.com:pretty66/gosdk.git $GOPATH/src/gosdk\n## 依赖\n- github.com/dgrijalva/jwt-go\n\n```\n\n* 或使用go mod\n\n```bash\n# 在go.mod中添加一行\ngithub.com/pretty66/gosdk latest\n\n# 执行go mod vendor\ngo mod vendor\n```\n### 依赖\n - github.com/dgrijalva/jwt-go\n \n### 基本使用\n- 具体使用案例参考 [kong_test.go](https://github.com/pretty66/gosdk/blob/master/kong_test.go)\n- sdk内部根据环境变量 GATEWAY_HOST_SERVICE 判断使用走kong网关还是原先网关\n- 可手动在代码中指定网关\n```go\nimport \"github.com/pretty66/gosdk/cienv\"\n// kong网关\ncienv.SetEnv(\"GATEWAY_HOST_SERVICE\", \"kong:http://127.0.0.1:13800\")\n// 老网关\ncienv.SetEnv(\"GATEWAY_HOST_SERVICE\", \"https://super-gateway.prod1.oneitfarm.com/index.php/\")\n```\n#### client 使用方法\n```go\n// 获取对象，head是请求的HEAD字段，用来解析HEAD中的Authorization中的token\nclient, err := gosdk.GetClientInstance(head)\n\n// 对Authorization中的token解析，或对SetToken()中token解析\n//一般服务调用时使用token解析\nclient, err = client.SetToken(token)\n// 如果调用方是应用，则通过SetAppInfo进行调用方的信息存储，服务不要使用该方法\nclient, err = client.SetAppInfo(appid, appkey, channel, version)\n\n// 可以使用SetServices()自定义服务地址，或通过serviceKey从环境变量中寻找服务地址（前者优先级高）\n// services是map[string]string，key是serviceKey，value是服务地址\nclient = client.SetServices(services)\n\n// 调用服务\n// serviceKey对应服务地址，就是中台的appid；\n// method是请求的方法，如post、get；\n// api是具体请求的接口地址；\n// params是要传递的参数，是map[string]interface{}的类型；\n// alias是服务的别名，自己在中台设置的，一般为\"default\"；\n// contentType是请求的格式，如application/x-www-form-urlencoded;\n// file是上传文件时使用，一般为nil。\nresp, err1 = client.Call(serviceKey, method, api, params, alias, contentType, file)\n```\n#### server 使用方法\n```go\nserver, err := GetServerInstance(_header)\nif err != nil {\n    t.Fatal(err)\n}\nfmt.Println(server.GetAppId())\nfmt.Println(server.GetAppKey())\nfmt.Println(server.GetAccountId())\nfmt.Println(server.GetCallStack())\nfmt.Println(server.GetFromAppId())\nfmt.Println(server.GetFromAppKey())\nfmt.Println(server.GetFromChannel())\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpretty66%2Fgosdk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpretty66%2Fgosdk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpretty66%2Fgosdk/lists"}