Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@biblioteksentralen/bmd-search-client

Package Overview
Dependencies
Maintainers
5
Versions
13
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@biblioteksentralen/bmd-search-client

Search client for Bibliotekenes metadatabrønn

  • 0.0.7
  • unpublished
  • latest
  • npm
  • Socket score

Version published
Maintainers
5
Created
Source

@biblioteksentralen/bmd-search-client

Basic usage example

import { createCordataApiClient } from "@biblioteksentralen/bmd-search-client";

const cordata = createCordataApiClient({
  clientIdentifier: "My little library app (drift@elvesund.no)",
  catalogueId: "tonsberg",
});

const { data, error } = await cordata.searchWorks({
  query: "jo nesbø",
});
if (error) {
  console.error(error);
} else {
  console.log(`Fetched ${data.results.length} results:`);
  for (const result of data.results) {
    console.log(`- ${result.work.title.mainTitle}`);
  }
}

Options

API context

This package provides clients for two BMD APIs:

  • The Public Library API, based on the Public Library API Specification, in which the response models have been modelled to provide interoperability with other library systems with different data models. Metadata is simplified into a two-level model (Work-Publication) which is generally easier to work with, but cannot express every metadata aspect that a three-level model can provide.

    import { createPublicLibraryApiClient } from "@biblioteksentralen/bmd-search-client";
    
    const plas = createPublicLibraryApiClient({ clientIdentifier: "My little library app (drift@elvesund.no)" });
    const results = await plas.searchWorks({ query: "Jo Nesbø" });
    
  • The Cordata API, which uses the same request structure, but provides responses based on our internal Cordata metadata model, a three-level model (Work-Expression-Manifestation) which can be more suited for library professionals.

    import { createCordataApiClient } from "@biblioteksentralen/bmd-search-client";
    
    const cordata = createCordataApiClient({ clientIdentifier: "My little library app (drift@elvesund.no)" });
    const results = await cordata.searchWorks({ query: "Jo Nesbø" });
    

The two APIs are aligned as much as possible. Endpoints generally use the same request structure, but different response structure. Some APIs are only available in one or the other API, for instance the "Get Publications" endpoint is only available in the Public Library API.

Client identification policy

The API does not require authentication, but clients should identify themselves using a descriptive name and a contact address in the clientIdentifier string. We will only contact you about usage of the API.

Catalogue scope

Clients are initialized with a global scope by default. Construct the client with a catalogueId to scope it to a specific library catalogue. Note that catalogue scoping only guarantees that results are found in the given library catalogue, not that the library have active holdings. If the actual holdings have been weeded, the catalogue record may still be present.

const client = createCordataApiClient({
  catalogueId: "tonsberg",
  ...otherOptions,
});

Environment

The client connects to the production environment by default, but it can be constructed to use the staging environment instead:

const client = createCordataApiClient({
  environment: "staging",
  ...otherOptions,
});

FAQs

Package last updated on 08 Mar 2024

Did you know?

Socket

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.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc