crossrefapi

This is a Go package fork working politely with the CrossRef API.

https://github.com/caltechlibrary/crossrefapi

Science Score: 65.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 4 DOI reference(s) in README
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
    Organization caltechlibrary has institutional domain (www.library.caltech.edu)
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (4.7%) to scientific vocabulary
Last synced: 6 months ago · JSON representation ·

Repository

This is a Go package fork working politely with the CrossRef API.

Basic Info
Statistics
  • Stars: 7
  • Watchers: 6
  • Forks: 2
  • Open Issues: 0
  • Releases: 15
Created over 7 years ago · Last pushed 7 months ago
Metadata Files
Readme License Citation Codemeta

README.md

crossrefapi

This is a go package for working with the Crossref API. It is inspired by the an excellent CrossRefAPI Python package listed in the Crossref API docs. This package is meant to follow the "polite" guidelines for interacting with the public API at api.crossref.org.

Go package example

```go appName := path.Base(os.Args[0]) client, err := crossrefapi.NewCrossRefClient(appName, "jane.doe@library.example.edu") if err != nil { // handle error... } works, err := client.Works("10.1037/0003-066x.59.1.29")

if err != nil {
    // handle error...
}
// continue processing your "works" result...

```

You can compare two copies of a "works" response and see what has changed.

```go

appName := path.Base(os.Args[0])
client, err := crossrefapi.NewCrossRefClient(appName, "jane.doe@library.example.edu")
if err != nil {
    // handle error...
}
newWorks, err := client.Works("10.1037/0003-066x.59.1.29")
if err != nil {
    // handle error...
}
// Fetch our previously saved works document.
src, err := os.ReadFile("0003-066x.59.1.29.json")
if err != nil {
    // handle error...
}
oldWorks := new(crossrefapi.Works)
if err := json.Unmarshal(src, &oldWorks); err != nil {
    // handle error...
}
src, err = oldWorks.DiffAsJSON(newWorks)
if err != nil {
    // handle error...
}
fmt.Println("Diff for 10.1037/0003-066x.59.1.29")
fmt.Printf("\n%s\n", src)

```

Command line example

crossrefapi -mailto="jane.doe@library.example.edu" works "10.1037/0003-066x.59.1.29"

Reference

Owner

  • Name: Caltech Library
  • Login: caltechlibrary
  • Kind: organization
  • Email: helpdesk@library.caltech.edu
  • Location: Pasadena, CA 91125

We manage the physical and digital holdings of the California Institute of Technology, provide services and training, and develop open-source software.

Citation (CITATION.cff)

cff-version: 1.2.0
message: "If you use this software, please cite it as below."
type: software
title: "crossrefapi"
abstract: "A Golang package and command line tool for working with the
public CrossRef API"
authors:
  - family-names: Doiel
    given-names: Robert
    orcid: "https://orcid.org/0000-0003-0900-6903"

maintainers:
  - family-names: Doiel
    given-names: Robert
    orcid: "https://orcid.org/0000-0003-0900-6903"
  - family-names: Morrell
    given-names: Thomas E
    orcid: "https://orcid.org/0000-0001-9266-5146"

repository-code: "https://github.com/caltechlibrary/crossrefapi"
version: 1.0.9
license-url: "https://caltechlibrary/crossrefapi/LICENSE"
keywords: [ "CrossRef", "DOI", "metadata" ]
date-released: 2025-01-16

CodeMeta (codemeta.json)

{
  "@context": "https://doi.org/10.5063/schema/codemeta-2.0",
  "@type": "SoftwareSourceCode",
  "description": "A Golang package and command line tool for working with the public CrossRef API",
  "releaseNotes": "Merged contributions with improvement for complex API queries",
  "name": "crossrefapi",
  "codeRepository": "https://github.com/caltechlibrary/crossrefapi",
  "issueTracker": "https://github.com/caltechlibrary/crossrefapi/issues",
  "license": "https://caltechlibrary/crossrefapi/LICENSE",
  "datePublished": "2025-01-16",
  "dateModified": "2025-01-16",
  "version": "1.0.9",
  "author": [
    {
      "@type": "Person",
      "givenName": "Robert",
      "familyName": "Doiel",
      "affiliation": {
        "@type": "Organization",
        "name": "Caltech Library"
      },
      "email": "rsdoiel@caltech.edu",
      "@id": "https://orcid.org/0000-0003-0900-6903"
    }
  ],
  "developmentStatus": "active",
  "downloadUrl": "https://github.com/caltechlibrary/crossrefapi/releases",
  "keywords": [
    "CrossRef",
    "DOI",
    "metadata"
  ],
  "maintainer": [
    {
      "@type": "Person",
      "givenName": "Robert",
      "familyName": "Doiel",
      "affiliation": {
        "@type": "Organization",
        "name": "Caltech Library"
      },
      "email": "rsdoiel@caltech.edu",
      "@id": "https://orcid.org/0000-0003-0900-6903"
    },
    {
      "@type": "Person",
      "givenName": "Thomas E",
      "familyName": "Morrell",
      "affiliation": {
        "@type": "Organization",
        "name": "Caltech Library"
      },
      "email": "tmorrell@caltech.edu",
      "@id": "https://orcid.org/0000-0001-9266-5146"
    }
  ],
  "contributor": [
    {
      "@type": "Person",
      "givenName": "Louis",
      "familyName": "Duchemin",
      "affiliation": {
        "@type": "Organization",
        "name": "Claude Bernard University"
      },
      "@id": "https://orcid.org/0000-0002-7984-9554"
    }
  ],
  "programmingLanguage": [
    "Go >= 1.23.4"
  ]
}

GitHub Events

Total
  • Release event: 2
  • Watch event: 2
  • Issue comment event: 1
  • Push event: 12
  • Pull request review event: 1
  • Pull request event: 6
  • Fork event: 2
  • Create event: 2
Last Year
  • Release event: 2
  • Watch event: 2
  • Issue comment event: 1
  • Push event: 12
  • Pull request review event: 1
  • Pull request event: 6
  • Fork event: 2
  • Create event: 2

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 1
  • Total pull requests: 6
  • Average time to close issues: 3 minutes
  • Average time to close pull requests: about 18 hours
  • Total issue authors: 1
  • Total pull request authors: 2
  • Average comments per issue: 1.0
  • Average comments per pull request: 0.17
  • Merged pull requests: 6
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 6
  • Average time to close issues: N/A
  • Average time to close pull requests: about 18 hours
  • Issue authors: 0
  • Pull request authors: 2
  • Average comments per issue: 0
  • Average comments per pull request: 0.17
  • Merged pull requests: 6
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • rsdoiel (1)
Pull Request Authors
  • lsdch (3)
  • luismmontilla (2)
Top Labels
Issue Labels
Pull Request Labels

Packages

  • Total packages: 1
  • Total downloads: unknown
  • Total dependent packages: 6
  • Total dependent repositories: 1
  • Total versions: 15
proxy.golang.org: github.com/caltechlibrary/crossrefapi
  • Versions: 15
  • Dependent Packages: 6
  • Dependent Repositories: 1
Rankings
Dependent packages count: 2.5%
Dependent repos count: 4.8%
Average: 10.6%
Stargazers count: 16.3%
Forks count: 18.7%
Last synced: 7 months ago

Dependencies

go.mod go
  • github.com/caltechlibrary/doitools v0.0.0-20190910184449-c524f84bb2b3
go.sum go
  • github.com/caltechlibrary/doitools v0.0.0-20190910184449-c524f84bb2b3