-
Notifications
You must be signed in to change notification settings - Fork 1
/
rspace.go
49 lines (34 loc) · 1.55 KB
/
rspace.go
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
/*
Package rspace is an API client for interacting with the
RSpace Electronic Lab Notebook (ELN - see https://www.researchspace.com).
It simplifies making API requests to RSpace from a program written in Go by:
- validating arguments
- parsing error responses
- converting raw JSON responses into convenient data types.
The central type is RsWebClient which is a facade to lower level services.
In order to make requests the RsWebClient needs to be instantiated with 2 arguments:
- the URL of the RSpace server you want to connect to, e.g. https://community.researchspace.com/api/v1
- an API token
package main
import (
"fmt"
"net/url"
)
func main() {
// url should end in 'api/v1'
url, _ := url.Parse("https://community.researchspace.com/api/v1")
// don't put your API key in code! use environment variable or a config file
apiKey := "myapikey"
// this is facade to access API services
webClient = rspace.NewWebClient(url, apiKey)
fmt.Println(webClient.Status())
}
All calls can return an error if the call fails. If the error is a 400 or 500 error
from the RSpace server, the error will be of type RSpaceError with more detailed information.
Please be aware that RSpace API has usage limits. In the event that usage limits are exceeded,
the RSpaceError will have status 429 (TooManyRequests) along with fields stating the minimum waiting
time before another request can be made.
For complex requests (e.g. searching Activity, or complex document search queries), Builder classes
are provided to help construct the query correctly.
*/
package rspace