The source code of this microservice can be viewed here.
https://api.adsabs.harvard.edu/v1/biblib
End point to create a library or view all libraries for a given user.
Obtains all the libraries that belong to the requesting user, along with some additional metadata.
Return data:
- name:
- string
- Name of the library
- id:
- string
- ID of the library
- description:
- string
- Description of the library
- num_documents:
- int
- Number of documents in the library
- date_created:
- string
- ISO date library was created
- date_last_modified:
- string
- ISO date library was last modified
- permission:
- string
- Permission type, can be: 'read', 'write', 'admin', or 'owner'
- public:
- boolean
- True means it is a public library
- num_users:
- int
- Number of users with permissions to this library
- owner:
- string
- Identifier of the user who created the library
Permissions: Must be authenticated via the API.
Creates a library for the requesting user. Returns metadata on the library created.
Post body:
- name:
- string
- name of the library (must be unique for that user)
- description:
- string
- description of the library
- public:
- boolean
- is the library public to view
- bibcode (OPTIONAL):
- list
- list of bibcodes to add
Return data:
- name: * Name of the library
- id:
- ID of the library
- description:
- Description of the library
Permissions: Must be authenticated via the API.
End point to interact with a specific library, only returns library content if the user has the correct privileges. See the document end point for deleting a library.
- library_id [string] is the unique identifier of the library, as specified in the
/librariesGET response.
Obtains all the documents of a given library.
Return data:
- documents:
- list
- Currently, a list containing the bibcodes.
- solr:
- dict
- The response from the solr bigquery end point
- metadata:
- dict
- contains the following:
- name:
- string
- Name of the library
- id:
- string
- ID of the library
- description:
- string
- Description of the library
- num_documents:
- int
- Number of documents in the library
- date_created:
- string
- ISO date library was created
- date_last_modified:
- string
- ISO date library was last modified
- permission:
- sting
- Permission type, can be: 'read', 'write', 'admin', or 'owner'
- public:
- boolean
- True means it is public
- num_users:
- int
- Number of users with permissions to this library
- owner:
- string
- Identifier of the user who created the library
- name:
- updates:
- dict
- contains the following
- num_updated:
- int
- Number of documents modified based on the response from solr
- duplicates_removed:
- int
- Number of files removed because they are duplications
- update_list:
- list[dict]
- List of dictionaries such that a single element described the original bibcode (key) and the updated bibcode now being stored (item)
- num_updated:
Permissions: The following type of user can read a library:
- owner
- admin
- write
- read
End point to interact with a specific library, by adding documents and removing documents. You also use this endpoint to delete the entire library.
- library_id [string] is the unique identifier of the library, as specified in the
/librariesGET response.
Request that adds a document to a library for a given user.
Post body:
- bibcode:
- list
- List of bibcodes to be added
- action:
- string
- 'add' or 'remove'
- add - adds a bibcode
- remove - removes a bibcode
Return data:
- number_added:
- int
- number of documents added (if 'add' is used)
- number_removed:
- int
- number of documents removed (if 'remove' is used)
Permissions: The following type of user can add documents:
- owner
- admin
- write
Request that updates the meta-data of the library
Post-body:
- name:
- string
- name of the library
- description:
- string
- description of the library
- public:
- boolean
- if the library should be publicly viewable
Note: The above are optional. Leave fields out if they do not need to be updated.
Return data:
- name:
- string
- name of the library
- description:
- string
- description of the library
- public:
- boolean
- if the library should be publicly viewable
Note: returns the key/value that was requested to be updated
Permissions: The following type of user can update the 'name', 'library', and 'public' attributes:
- owner
- admin
Request that deletes a library.
Permissions:
The following type of user can update a library:
- owner
End point to manipulate the permissions between a user and a library.
- library_id [string] is the unique identifier of the library, as specified in the
/librariesGET response.
Request that returns the permissions for a given library.
Return data:
- list of dictionaries, where each dictionary is for a specific user. The dictionary contains a list of all the permissions of the user.
- list
- user dictionary
- dict
- key:
- string
- user e-mail
- item:
- list
- list of permissions: 'read', 'write', 'admin', 'owner'
- key:
- dict
Permissions: The following type of user can access permissions of a library:
- owner
- admin
Request that modifies the permissions of a library
Post data:
- username:
- string
- specifies which user's permissions to be modified
- permission:
- string
- 'read', 'write', 'admin' or 'owner'
- value:
- boolean
- whether the user has this permission (True=yes, False=no)
Permissions: The following type of user can update a permission for a user for a given library:
- owner
- admin
End point to transfer a the ownership of a library to another ADS user.
- library_id [string] is the unique identifier of the library, as specified in the
/librariesGET response.
Request that transfers the ownership of a library from one user to another.
Post body:
- transfer_user:
- string
- username of the user the account should be transfered to
Permissions: The following type of user can transfer libraries:
- owner
- owner: Owns the library. Can read libraries, add/remove bibcodes, delete the library, add/remove permissions, transfer ownership of the library.
- admin: Can read libraries, add/remove bibcodes, add/remove permissions.
- write: Can read libraries, add/remove bibcdes.
- read: Can read libraries.
Any other user that does not have a permission to the library they try to visit, can only see it if it is public. If the user has no permissions, they cannot view this library.