Commit a0b5be1e authored by lihailei's avatar lihailei

Manually registered route.

parent 473996bd
......@@ -12,8 +12,8 @@ var (
chain33_jrpcUrl = "http://localhost:8801"
)
func SetJrpcURL(url string) {
chain33_jrpcUrl=url
func SetJrpcURL(url string) {
chain33_jrpcUrl = url
}
func GetJrpcURL() string {
return chain33_jrpcUrl
......@@ -43,40 +43,6 @@ func NewRpcCtx(laddr, methed string, params, res interface{}) *RpcCtx {
func (c *RpcCtx) SetResultCb(cb Callback) {
c.cb = cb
}
//func (c *RpcCtx) Run() {
// rpc, err := jsonrpc.NewJSONClient(c.Addr)
// if err != nil {
// fmt.Fprintln(os.Stderr, err)
// return
// }
//
// err = rpc.Call(c.Method, c.Params, c.Res)
// if err != nil {
// fmt.Fprintln(os.Stderr, err)
// return
// }
//
// // maybe format rpc result
// var result interface{}
// if c.cb != nil {
// result, err = c.cb(c.Res)
// if err != nil {
// fmt.Fprintln(os.Stderr, err)
// return
// }
// } else {
// result = c.Res
// }
//
// data, err := json.MarshalIndent(result, "", " ")
// if err != nil {
// fmt.Fprintln(os.Stderr, err)
// return
// }
//
// fmt.Println(string(data))
//}
func (c *RpcCtx) ReplyData() ([]byte, error) {
rpc, err := jsonrpc.NewJSONClient(c.Addr)
if err != nil {
......
......@@ -18,23 +18,18 @@ type BlockController struct {
// URLMapping ...
func (c *BlockController) URLMapping() {
//View last block header
c.Mapping("getLastHeader", c.getLastHeader)
c.Mapping("getLastHeader", c.GetLastHeader)
//Get hash of block at height
c.Mapping("getBlockHashByHeight", c.getBlockHash)
c.Mapping("getBlockHashByHeight", c.GetBlockHash)
//View block info by block hash
c.Mapping("getBlockViewByHash", c.getBlockViewByHash)
c.Mapping("getBlockViewByHash", c.GetBlockViewByHash)
//Get block headers between [start, end]
c.Mapping("getBlockHeaders", c.getBlockHeaders)
c.Mapping("getBlockHeaders", c.GetBlockHeaders)
// Get block headers between [start, end]
c.Mapping("getBlockList", c.getBlockList)
c.Mapping("getBlockList", c.GetBlockList)
}
//getLastHeader...
//@Title getLastHeader
//@Description getLastHeader
//@Success 200 {block}
//@Failure 403 :
//@router [get]
func (c *BlockController) getLastHeader() {
func (c *BlockController) GetLastHeader() {
var res jsonrpc.Header
ctx := NewRpcCtx(GetJrpcURL(), "Chain33.GetLastHeader", nil, &res)
data, err := ctx.ReplyData()
......@@ -45,13 +40,8 @@ func (c *BlockController) getLastHeader() {
c.Ctx.ResponseWriter.Write(data)
}
}
//getLastHeader...
//@Title getLastHeader
//@Description getLastHeader
//@Success 200 {block}
//@Failure 400,403:
//@router /getBlockHashByHeight [get]
func (c *BlockController) getBlockHash() {
func (c *BlockController) GetBlockHash() {
var res jsonrpc.ReplyHash
height := c.Ctx.Request.Header.Get("height")
h, err := strconv.ParseInt(height, 10, 64)
......@@ -71,13 +61,8 @@ func (c *BlockController) getBlockHash() {
c.Ctx.ResponseWriter.Write(data)
}
}
//getblockViewByHash...
//@Title getblockViewByHash
//@Description getblockViewByHash
//@Success 200 {blockView}
//@Failure 400,403 :
//@router /getblockViewByHash [get]
func (c *BlockController) getBlockViewByHash() {
func (c *BlockController) GetBlockViewByHash() {
blockHash := c.Ctx.Request.Header.Get("blockHash")
if blockHash == "" {
c.Ctx.ResponseWriter.WriteHeader(400)
......@@ -96,13 +81,8 @@ func (c *BlockController) getBlockViewByHash() {
c.Ctx.ResponseWriter.Write(data)
}
}
//getblockHeaders...
//@Title getblockHeaders
//@Description getblockHeaders
//@Success 200 {blockHeader}
//@Failure 400,403 :
//@router /getBlockHeaders [get]
func (c *BlockController) getBlockHeaders() {
func (c *BlockController) GetBlockHeaders() {
startH, errS := strconv.ParseInt(c.Ctx.Request.Header.Get("startH"), 10, 64)
endH, errE := strconv.ParseInt(c.Ctx.Request.Header.Get("endH"), 10, 64)
isDetail, errD := strconv.ParseBool(c.Ctx.Request.Header.Get("detail"))
......@@ -125,13 +105,8 @@ func (c *BlockController) getBlockHeaders() {
c.Ctx.ResponseWriter.Write(data)
}
}
//getblockList...
//@Title getblockList
//@Description getblockList
//@Success 200 {blockList}
//@Failure 400,403 :
//@router /getBlockList [get]
func (c *BlockController) getBlockList() {
func (c *BlockController) GetBlockList() {
startH, errS := strconv.ParseInt(c.Ctx.Request.Header.Get("startH"), 10, 64)
endH, errE := strconv.ParseInt(c.Ctx.Request.Header.Get("endH"), 10, 64)
......
......@@ -16,12 +16,6 @@ func (c *PeerController) URLMapping() {
c.Mapping("getPeers", c.GetPeers)
}
//GetOne ...
//@Title GetPeers
//@Description get Peers
//@Success 200 {object} models.Peer
//@Failure 403 :
//@router /getPeers [get]
func (c *PeerController) GetPeers() {
var res jsonrpc.PeerList
ctx := NewRpcCtx(GetJrpcURL(), "Chain33.GetPeerInfo", nil, &res)
......
......@@ -3,13 +3,13 @@ package controllers
import (
"github.com/astaxie/beego"
jsonrpc "gitlab.33.cn/chain33/chain33/rpc"
"gitlab.33.cn/chain33/chain33/types"
. "gitlab.33.cn/lihailei/chain33_sdk/common"
. "gitlab.33.cn/lihailei/chain33_sdk/models"
"gitlab.33.cn/chain33/chain33/types"
"strconv"
"io/ioutil"
"encoding/json"
"io/ioutil"
"strconv"
)
// TxController operations for Tx
......@@ -22,25 +22,20 @@ func (c *TxController) URLMapping() {
c.Mapping("queryTxByHash", c.QueryTxByHash)
c.Mapping("queryTxByAddr", c.QueryTxByAddr)
}
//queryTxByHash...
//@Title queryTxByHash
//@Description queryTxByHash
//@Success 200 {TX}
//@Failure 400,403 :
//@router /queryTxByHash [get]
func (c *TxController) QueryTxByHash() {
hash := c.Ctx.Request.Header.Get("hash")
isRawHex, _ := strconv.ParseBool(c.Ctx.Request.Header.Get("isRawHex"))
if hash ==""{
if hash == "" {
c.Ctx.ResponseWriter.WriteHeader(400)
return
}
var data []byte
var err error
var err error
if isRawHex {
data,err =queryByHashOutputHex(GetJrpcURL(), hash)
data, err = queryByHashOutputHex(GetJrpcURL(), hash)
} else {
data,err=queryByHash(GetJrpcURL(), hash)
data, err = queryByHash(GetJrpcURL(), hash)
}
if err != nil {
c.Data["json"] = err.Error()
......@@ -50,20 +45,14 @@ func (c *TxController) QueryTxByHash() {
}
}
//queryTxByAddr...
//@Title queryTxByAddr
//@Description queryTxByAddr
//@Success 200 {TX}
//@Failure 400,403 :
//@router /queryTxByAddr [get]
func (c *TxController) QueryTxByAddr() {
var params types.ReqAddr
body,_:= ioutil.ReadAll(c.Ctx.Request.Body)
err :=json.Unmarshal(body,&params)
if err !=nil {
c.Ctx.ResponseWriter.WriteHeader(400)
return
}
body, _ := ioutil.ReadAll(c.Ctx.Request.Body)
err := json.Unmarshal(body, &params)
if err != nil {
c.Ctx.ResponseWriter.WriteHeader(400)
return
}
//params := types.ReqAddr{
// Addr: addr,
// Flag: flag,
......@@ -83,7 +72,7 @@ func (c *TxController) QueryTxByAddr() {
}
}
func queryByHashOutputHex(rpcAddr, txHash string)([]byte,error) {
func queryByHashOutputHex(rpcAddr, txHash string) ([]byte, error) {
params := jsonrpc.QueryParm{
Hash: txHash,
}
......@@ -91,7 +80,7 @@ func queryByHashOutputHex(rpcAddr, txHash string)([]byte,error) {
ctx := NewRpcCtx(rpcAddr, "Chain33.GetHexTxByHash", params, &res)
return ctx.ReplyData()
}
func queryByHash(rpcAddr, txHash string)([]byte,error) {
func queryByHash(rpcAddr, txHash string) ([]byte, error) {
params := jsonrpc.QueryParm{
Hash: txHash,
}
......@@ -99,4 +88,4 @@ func queryByHash(rpcAddr, txHash string)([]byte,error) {
ctx := NewRpcCtx(rpcAddr, "Chain33.QueryTransaction", params, &res)
ctx.SetResultCb(ParseQueryTxRes)
return ctx.ReplyData()
}
\ No newline at end of file
}
......@@ -12,7 +12,7 @@ func main() {
beego.BConfig.WebConfig.DirectoryIndex = true
beego.BConfig.WebConfig.StaticDir["/swagger"] = "swagger"
}
if beego.AppConfig.String("jrpcAddr")!=""{
if beego.AppConfig.String("jrpcAddr") != "" {
common.SetJrpcURL(beego.AppConfig.String("jrpcAddr"))
}
beego.Run()
......
package routers
import (
"github.com/astaxie/beego"
"github.com/astaxie/beego/context/param"
)
func init() {
beego.GlobalControllerRouter["gitlab.33.cn/lihailei/chain33_sdk/controllers:BlockController"] = append(beego.GlobalControllerRouter["gitlab.33.cn/lihailei/chain33_sdk/controllers:BlockController"],
beego.ControllerComments{
Method: "getBlockHash",
Router: `/getBlockHashByHeight`,
AllowHTTPMethods: []string{"get"},
MethodParams: param.Make(),
Params: nil})
beego.GlobalControllerRouter["gitlab.33.cn/lihailei/chain33_sdk/controllers:BlockController"] = append(beego.GlobalControllerRouter["gitlab.33.cn/lihailei/chain33_sdk/controllers:BlockController"],
beego.ControllerComments{
Method: "getBlockHeaders",
Router: `/getBlockHeaders`,
AllowHTTPMethods: []string{"get"},
MethodParams: param.Make(),
Params: nil})
beego.GlobalControllerRouter["gitlab.33.cn/lihailei/chain33_sdk/controllers:BlockController"] = append(beego.GlobalControllerRouter["gitlab.33.cn/lihailei/chain33_sdk/controllers:BlockController"],
beego.ControllerComments{
Method: "getBlockList",
Router: `/getBlockList`,
AllowHTTPMethods: []string{"get"},
MethodParams: param.Make(),
Params: nil})
beego.GlobalControllerRouter["gitlab.33.cn/lihailei/chain33_sdk/controllers:BlockController"] = append(beego.GlobalControllerRouter["gitlab.33.cn/lihailei/chain33_sdk/controllers:BlockController"],
beego.ControllerComments{
Method: "getBlockViewByHash",
Router: `/getblockViewByHash`,
AllowHTTPMethods: []string{"get"},
MethodParams: param.Make(),
Params: nil})
beego.GlobalControllerRouter["gitlab.33.cn/lihailei/chain33_sdk/controllers:BlockController"] = append(beego.GlobalControllerRouter["gitlab.33.cn/lihailei/chain33_sdk/controllers:BlockController"],
beego.ControllerComments{
Method: "getLastHeader",
Router: `[get]`,
AllowHTTPMethods: []string{"get"},
MethodParams: param.Make(),
Params: nil})
beego.GlobalControllerRouter["gitlab.33.cn/lihailei/chain33_sdk/controllers:PeerController"] = append(beego.GlobalControllerRouter["gitlab.33.cn/lihailei/chain33_sdk/controllers:PeerController"],
beego.ControllerComments{
Method: "GetPeers",
Router: `/getPeers`,
AllowHTTPMethods: []string{"get"},
MethodParams: param.Make(),
Params: nil})
beego.GlobalControllerRouter["gitlab.33.cn/lihailei/chain33_sdk/controllers:TxController"] = append(beego.GlobalControllerRouter["gitlab.33.cn/lihailei/chain33_sdk/controllers:TxController"],
beego.ControllerComments{
Method: "QueryTxByAddr",
Router: `/queryTxByAddr`,
AllowHTTPMethods: []string{"get"},
MethodParams: param.Make(),
Params: nil})
beego.GlobalControllerRouter["gitlab.33.cn/lihailei/chain33_sdk/controllers:TxController"] = append(beego.GlobalControllerRouter["gitlab.33.cn/lihailei/chain33_sdk/controllers:TxController"],
beego.ControllerComments{
Method: "QueryTxByHash",
Router: `/queryTxByHash`,
AllowHTTPMethods: []string{"get"},
MethodParams: param.Make(),
Params: nil})
}
......@@ -40,7 +40,13 @@ func init() {
ctx.Request.Header.Set("privateKey", "CC38546E9E659D15E6B4893F0AB32A06D103931A8230B0BDE71459D2B27D6944")
})
beego.AddNamespace(ns)
//beego.Router("/v1/peer",&controllers.PeerController{},)
//beego.Router("/v1/block",&controllers.BlockController{})
//beego.Router("/v1/tx",&controllers.TxController{})
//注册路由
beego.Router("/v1/peer/getPeers", &controllers.PeerController{}, "get:GetPeers")
beego.Router("/v1/block/getLastHeader", &controllers.BlockController{}, "get:GetLastHeader")
beego.Router("/v1/block/getBlockHashByHeight", &controllers.BlockController{}, "get:GetBlockHash")
beego.Router("/v1/block/getBlockViewByHash", &controllers.BlockController{}, "get:GetBlockViewByHash")
beego.Router("/v1/block/getBlockHeaders", &controllers.BlockController{}, "get:GetBlockHeaders")
beego.Router("/v1/block/getBlockList", &controllers.BlockController{}, "get:GetBlockList")
beego.Router("/v1/tx/queryTxByHash", &controllers.TxController{}, "get:QueryTxByHash")
beego.Router("/v1/tx/queryTxByAddr", &controllers.TxController{}, "get:QueryTxByAddr")
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment