sqlite的api,便于内部使用
liuxiaolong
2019-06-12 c6a4b5233d514bfddf308ee90c09b6c8dd289ba6
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
package dbapi
 
import (
    "basic.com/valib/deliver.git"
    "encoding/json"
    "errors"
)
 
type ReqRepClient struct {}
 
var ReqRep_URL = "tcp://192.168.1.11:8002"
 
//初始化rply的地址
func InitRplyUrl(url string) {
    ReqRep_URL = url
}
 
func (api ReqRepClient) DoGetRequest(url string, params map[string]string, headers map[string]string) ([]byte, error) {
    var reqBody RplyParamBody
    reqBody.Action = url
    var destMap map[string]interface{}
    for idx,val := range params {
        destMap[idx] = interface{}(val)
    }
    reqBody.Params = destMap
    return doRply(reqBody)
}
 
func (api ReqRepClient) DoPostRequest(url string, contentType string, body map[string]interface{}, params map[string]string, headers map[string]string) ([]byte, error) {
    var reqBody RplyParamBody
    reqBody.Action = url
    reqBody.Params = body
    return doRply(reqBody)
}
 
func (api ReqRepClient) DoPutRequest(url string, contentType string, body map[string]interface{}, headers map[string]string) ([]byte, error) {
    var reqBody RplyParamBody
    reqBody.Action = url
    reqBody.Params = body
    return doRply(reqBody)
}
 
func (api ReqRepClient) DoDeleteRequest(url string, contentType string, body map[string]interface{}, headers map[string]string) ([]byte, error) {
    var reqBody RplyParamBody
    reqBody.Action = url
    reqBody.Params = body
    return doRply(reqBody)
}
 
type RplyParamBody struct {
    Action string    `json:"action"`    //根据action判断做何种响应
    Params map[string]interface{}    `json:"params"`//参数map
}
 
func doRply(body RplyParamBody)([]byte,error){
    sender := deliver.NewClient(deliver.Mode(deliver.ReqRep), ReqRep_URL)
    bytes,err := json.Marshal(body)
    if err !=nil {
        return nil,err
    }
    err = sender.Send(bytes)
    if err !=nil {
        resMsg, _ := sender.Recv()
        if resMsg !=nil {
            return resMsg,nil
        }
    }
    return nil,errors.New("nng no resp")
}