![38% of CISOs Fear They’re Not Moving Fast Enough on AI](https://cdn.sanity.io/images/cgdhsj6q/production/faa0bc28df98f791e11263f8239b34207f84b86f-1024x1024.webp?w=400&fit=max&auto=format)
Security News
38% of CISOs Fear They’re Not Moving Fast Enough on AI
CISOs are racing to adopt AI for cybersecurity, but hurdles in budgets and governance may leave some falling behind in the fight against cyber threats.
github.com/AdamSLevy/jsonrpc2/v14
Package jsonrpc2 is a complete and strictly conforming implementation of the JSON-RPC 2.0 protocol for both clients and servers.
The full specification can be found at https://www.jsonrpc.org.
The simplest way to make a JSON-RPC 2.0 request is to use the provided Client.Request.
var c jsonrpc2.Client
params := []float64{1, 2, 3}
var result int
err := c.Request(nil, "http://localhost:8080", "sum", params, &result)
if _, ok := err.(jsonrpc2.Error); ok {
// received Error Request
}
if err != nil {
// some JSON marshaling or network error
}
fmt.Printf("The sum of %v is %v.\n", params, result)
For clients that do not wish to use the provided Client, the Request and Response types can be used directly.
req, _ := json.Marshal(jsonrpc2.Request{Method: "subtract",
Params: []int{5, 1},
ID: 0,
})
httpRes, _ := http.Post("www.example.com", "application/json",
bytes.NewReader(req))
resBytes, _ := ioutil.ReadAll(httpRes.Body)
res := jsonrpc2.Response{Result: &MyCustomResultType{}, ID: new(int)}
json.Unmarshal(respBytes, &res)
Servers define their own MethodFuncs and associate them with a name in a MethodMap that is passed to HTTPRequestHandler() to return a corresponding http.HandlerFunc. See HTTPRequestHandler for more details.
func getUser(ctx context.Context, params json.RawMessage) interface{} {
var u User
if err := json.Unmarshal(params, &u); err != nil {
return jsonrpc2.InvalidParams(err)
}
conn, err := mydbpkg.GetDBConn()
if err != nil {
// The handler will recover, print debug info if enabled, and
// return an Internal Error to the client.
panic(err)
}
if err := u.Select(conn); err != nil {
return jsonrpc2.NewError(-30000, "user not found", u.ID)
}
return u
}
func StartServer() {
methods := jsonrpc2.MethodMap{"version": versionMethod}
http.ListenAndServe(":8080", jsonrpc2.HTTPRequestHandler(methods))
}
FAQs
Unknown package
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
CISOs are racing to adopt AI for cybersecurity, but hurdles in budgets and governance may leave some falling behind in the fight against cyber threats.
Research
Security News
Socket researchers uncovered a backdoored typosquat of BoltDB in the Go ecosystem, exploiting Go Module Proxy caching to persist undetected for years.
Security News
Company News
Socket is joining TC54 to help develop standards for software supply chain security, contributing to the evolution of SBOMs, CycloneDX, and Package URL specifications.