sqlite的api,便于内部使用
liuxiaolong
2019-05-31 e49473afa5e9c1586c06b971d19fbc51560deef6
add rply mode
4个文件已修改
125 ■■■■ 已修改文件
api_test.go 27 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cameraApi.go 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
httpClient.go 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
reqrepClient.go 73 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
api_test.go
@@ -1,7 +1,7 @@
package dbapi
import (
    "dbapi/protomsg"
    "basic.com/pubsub/protomsg.git"
    "fmt"
    "testing"
)
@@ -40,10 +40,29 @@
    fmt.Println(camera)
}
func TestMangosReqClient(t *testing.T){
    var client ReqrepApi
func TestCameraApi_Add(t *testing.T) {
    var api CameraApi
    camera := protomsg.Camera{
        Name:"测试啊啊啊啊啊啊啊啊",
        Areaid:0,
    }
    result := api.CameraAdd(camera)
    fmt.Println("add result: ",result)
    client.SendRequestAndGetReply("one")
}
func TestSdkApi_Save(t *testing.T) {
    var api SdkApi
    sdk := protomsg.Sdk{
        SdkName:"测试sdk啊啊啊啊啊",
    }
    result := api.Save(sdk)
    fmt.Println("add result: ",result)
}
func TestMangosReqClient(t *testing.T){
}
func TestSdkApi_FindAll(t *testing.T) {
cameraApi.go
@@ -8,6 +8,24 @@
type CameraApi struct{}
func (api CameraApi) CameraAdd(camera protomsg.Camera) bool {
    url := BASIC_URL + DATA_URL_PREFIX + "/camera/add"
    client := NewClient()
    bodyParam := make(map[string]interface{},0)
    bodyParam["name"]=camera.Name
    bodyParam["areaid"] = camera.Areaid
    body, err := client.DoPostRequest(url,CONTENT_TYPE_JSON,bodyParam,nil,nil)
    if err != nil {
        return false
    }
    var res Result
    if err = json.Unmarshal(body, &res); err != nil {
        return false
    }
    return res.Success
}
//通过cameraId获取摄像机信息
func (api CameraApi) GetCameraById(cameraId string) (result protomsg.Camera, err error) {
    url := BASIC_URL + DATA_URL_PREFIX + "/camera/show/" + cameraId
@@ -30,7 +48,6 @@
    return result, err
}
//查找所有摄像机
func (api CameraApi) FindAll() (cameras []protomsg.Camera) {
    url := BASIC_URL + DATA_URL_PREFIX + "/camera/showAll"
    client := NewClient()
httpClient.go
@@ -15,7 +15,6 @@
    var body []byte
    request, err := http.NewRequest("GET", url, nil)
    if err != nil {
        log.Println(err)
        return body, err
    }
    // add params
@@ -28,7 +27,6 @@
    }
    //add headers
    client := &http.Client{}
    log.Printf("Go GET URL : %s \n", request.URL.String())
    resp, err := client.Do(request)
    if err != nil {
        return body, err
@@ -49,13 +47,11 @@
        var err error
        bodyJson, err = json.Marshal(body)
        if err != nil {
            log.Println(err)
            return resultBytes, err
        }
    }
    request, err := http.NewRequest("POST", url, bytes.NewBuffer(bodyJson))
    if err != nil {
        log.Println(err)
        return resultBytes, err
    }
    request.Header.Set("Content-type", contentType)
@@ -94,7 +90,6 @@
        var err error
        bodyJson, err = json.Marshal(body)
        if err != nil {
            log.Println(err)
            return resultBytes, err
        }
    }
@@ -131,7 +126,6 @@
        var err error
        bodyJson, err = json.Marshal(body)
        if err != nil {
            log.Println(err)
            return resultBytes, err
        }
    }
reqrepClient.go
@@ -2,29 +2,68 @@
import (
    "basic.com/valib/deliver.git"
    "basic.com/pubsub/protomsg.git"
    "encoding/json"
    "fmt"
    "errors"
)
type ReqrepApi struct {
type ReqRepClient struct {}
var ReqRep_URL = "tcp://192.168.1.11:8002"
//初始化rply的地址
func InitRplyUrl(url string) {
    ReqRep_URL = url
}
const (
    ReqRep_URL = "tcp://192.168.1.11:8002"
)
func (api ReqrepApi)SendRequestAndGetReply(reqStr string) string {
    sender := deliver.NewClient(deliver.Mode(deliver.ReqRep), ReqRep_URL)
    var sendMsg = protomsg.SdkMessage{}
    sendMsg.Cid = "kkkk"
    byteArr, _ := json.Marshal(sendMsg)
    err := sender.Send(byteArr)
    if err !=nil {
        fmt.Println(err)
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)
}
    fmt.Println("SendRequest")
    return ""
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")
}