Documentation
¶
Overview ¶
Package dataverse is the library behind the dataverse command line: the HTTP client, request shaping, and the typed data models for the Harvard Dataverse repository.
The Client here is the spine every command shares. It sets a real User-Agent, paces requests so a busy session stays polite, and retries the transient failures (429 and 5xx) that any public API throws under load. Build your endpoint calls and JSON decoding on top of it.
Index ¶
Constants ¶
const DefaultUserAgent = "dataverse-cli/0.1.0 (+https://github.com/tamnd/dataverse-cli)"
DefaultUserAgent identifies the client to Dataverse. A real, honest User-Agent is both polite and the thing most likely to keep you unblocked.
const Host = "dataverse.harvard.edu"
Host is the site this client talks to, and the host the URI driver in domain.go claims.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Client ¶
type Client struct {
// contains filtered or unexported fields
}
Client talks to the Harvard Dataverse search API over HTTP.
func NewClientWithConfig ¶
NewClientWithConfig returns a Client built from cfg.
func (*Client) Get ¶
Get fetches rawURL and returns the response body. It paces and retries according to the client's settings. The caller owns nothing extra; the body is read fully and closed here.
func (*Client) RecentDatasets ¶
RecentDatasets returns the most recently published datasets by searching for all records ordered by date.
type Config ¶
type Config struct {
BaseURL string
Rate time.Duration
Retries int
Timeout time.Duration
UserAgent string
}
Config holds the tunable knobs for the HTTP client.
func DefaultConfig ¶
func DefaultConfig() Config
DefaultConfig returns sensible defaults: a 500 ms pace, three retries, and a 30 s timeout.
type Dataset ¶
type Dataset struct {
ID string `json:"id" kit:"id"`
Title string `json:"title"`
URL string `json:"url,omitempty"`
Description string `json:"description,omitempty"`
Publisher string `json:"publisher,omitempty"`
Subjects []string `json:"subjects,omitempty"`
Authors []string `json:"authors,omitempty"`
FileCount int `json:"file_count,omitempty"`
PublishedAt string `json:"published_at,omitempty"`
UpdatedAt string `json:"updated_at,omitempty"`
}
Dataset is the public record type: one dataset entry from Harvard Dataverse.
type Domain ¶
type Domain struct{}
Domain is the dataverse driver. It carries no state; the per-run client is built by the factory Register hands kit.
func (Domain) Classify ¶
Classify turns any accepted input — a bare DOI or a full Dataverse URL — into the canonical (type, id), so `ant resolve` and `ant url` touch no network.
func (Domain) Info ¶
func (Domain) Info() kit.DomainInfo
Info describes the scheme, the hostnames a pasted link is matched against, and the identity reused for the binary's help and version.