Item Storage Dereferenced version v1.2
http://localhost
Item Retrieval API
Get dereferenced items data from inventory
/item-storage-dereferenced
Entity representing a item
Retrieve item item with given {itemId}
get /item-storage-dereferenced/items
Retrieve item item with given {itemId}
Query Parameters
- totalRecords: (string - default: auto - pattern: exact|estimated|none|auto)
How to calculate the totalRecords property. "exact" for the correct number, "estimated" for an estimation, "auto" to automatically select "exact" or "estimated", "none" for suppressing the totalRecords property. For details see https://github.com/folio-org/raml-module-builder#estimated-totalrecords
Example:
none
- offset: (integer - default: 0 - minimum: 0 - maximum: 2147483647)
Skip over a number of elements by specifying an offset value for the query
Example:
0
- limit: (integer - default: 10 - minimum: 0 - maximum: 2147483647)
Limit the number of elements returned in the response. Using limit=0 will return totalRecords with the exact value. For details about totalRecords see https://github.com/folio-org/raml-module-builder#estimated-totalrecords
Example:
10
- query: (string)
A query expressed as a CQL string (see dev.folio.org/reference/glossary#cql) using valid searchable fields. The first example below shows the general form of a full CQL query, but those fields might not be relevant in this context.
using CQL (indexes for item and material type)
Example:
(username=="ab*" or personal.firstName=="ab*" or personal.lastName=="ab*") and active=="true" sortby personal.lastName personal.firstName barcode title="*uproot*"
HTTP status code 200
Returns item with a given ID
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "A collection of dereferenced item records",
"type": "object",
"properties": {
"dereferencedItems": {
"description": "List of dereferenced item records",
"id": "items",
"type": "array",
"items": {
"type": "object",
"$ref": "dereferenceditem.json"
}
},
"totalRecords": {
"description": "Estimated or exact total number of records",
"type": "integer"
}
},
"required": [
"dereferencedItems",
"totalRecords"
]
}
Example:
{
"items": [
{
"id": "0b96a642-5e7f-452d-9cae-9cee66c9a892",
"instanceRecord": {
"id": "601a8dc4-dee7-48eb-b03f-d02fdf0debd0",
"source": "Local: MARC",
"title": "ADVANCING LIBRARY EDUCATION: TECHNOLOGICAL INNOVATION AND INSTRUCTIONAL DESIGN",
"contributors": [
{
"name": "Sigal, Ari",
"contributorNameTypeId": "2b94c631-fca9-4892-a730-03ee529ffe2a",
"primary": true
}
],
"identifiers": [
{
"identifierTypeId": "2e48e713-17f3-4c13-a9f8-23845bb210af",
"value": "9781466636897"
},
{
"identifierTypeId": "6051f95c-028e-4c6a-8a9e-ee689dd51453",
"value": "1"
}
],
"instanceTypeId": "2b94c631-fca9-4892-a730-03ee529ffe2c",
"tags" : {
"tagList" : [
"important"
]
}
},
"holdingsRecord": {
"id": "65cb2bf0-d4c2-4886-8ad0-b76f1ba75d61",
"instanceId": "601a8dc4-dee7-48eb-b03f-d02fdf0debd0",
"permanentLocationId": "d9cd0bed-1b49-4b5e-a7bd-064b8d177231",
"holdingsStatements": [
{
"statement": "Line 1",
"note": "Note to line 1"
},
{
"statement": "Line 2",
"note": "Note to line2"
}
],
"tags" : {
"tagList" : [
"important"
]
}
},
"barcode": "645398607547",
"status": {
"name": "In transit"
},
"materialType": {
"name": "book"
},
"permanentLoanType": {
"id": "2b94c631-fca9-4892-a730-03ee529ffe27",
"name": "Can circulate"
},
"inTransitDestinationServicePointId": "5b31ec8c-95a7-4b91-95cc-b551a74b91ca",
"tags" : {
"tagList" : [
"important"
]
}
}
],
"totalRecords": 1
}
HTTP status code 400
Bad request, e.g. malformed request body or query parameter. Details of the error (e.g. name of the parameter or line/character number with malformed data) provided in the response.
Body
Media type: text/plain
Type: any
Example:
"unable to list items -- malformed parameter 'query', syntax error at column 6"
HTTP status code 401
Not authorized to perform requested action
Body
Media type: text/plain
Type: any
Example:
"unable to list items -- unauthorized"
HTTP status code 404
Item with a given ID not found
Body
Media type: text/plain
Type: any
Example:
"item not found"
HTTP status code 500
Internal server error, e.g. due to misconfiguration
Body
Media type: text/plain
Type: any
Example:
internal server error, contact administrator
Entity representing a item
Retrieve item item with given {itemId}
get /item-storage-dereferenced/items/{itemId}
Retrieve item item with given {itemId}
URI Parameters
- itemId: required(string)
HTTP status code 200
Returns item with a given ID
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "An item record with related record data",
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Unique ID of the item record"
},
"instanceRecord":{
"type": "object",
"description" : "Parent instance record.",
"$ref": "instance.json"
},
"_version": {
"type": "integer",
"description": "Record version for optimistic locking"
},
"hrid": {
"type": "string",
"description": "The human readable ID, also called eye readable ID. A system-assigned sequential alternate ID"
},
"holdingsRecord": {
"type": "object",
"description": "Holdings record the item is a member of.",
"$ref": "holdings-storage/holdingsRecord.json"
},
"order": {
"type": "integer",
"description": "Order of the item in the holdings record."
},
"formerIds": {
"type": "array",
"description": "Previous identifiers assigned to the item",
"items": {
"type": "string"
},
"uniqueItems": true
},
"discoverySuppress": {
"type": "boolean",
"description": "Records the fact that the record should not be displayed in a discovery system"
},
"accessionNumber": {
"type": "string",
"description": "Also called inventar number"
},
"barcode": {
"type": "string",
"description": "Unique inventory control number for physical resources, used largely for circulation purposes"
},
"effectiveShelvingOrder": {
"type": "string",
"description": "A system generated normalization of the call number that allows for call number sorting in reports and search results",
"readonly": true
},
"additionalCallNumbers": {
"description": "Additional Call Numbers to track the history of identifiers assigned to an item.",
"type": "array",
"items": {
"type": "object",
"$ref": "common/callNumberComponents.json",
"uniqueItems": true
}
},
"itemLevelCallNumber": {
"type": "string",
"description": "Call Number is an identifier assigned to an item, usually printed on a label attached to the item. The call number is used to determine the items physical position in a shelving sequence, e.g. K1 .M44. The Item level call number, is the call number on item level."
},
"itemLevelCallNumberPrefix": {
"type": "string",
"description": "Prefix of the call number on the item level."
},
"itemLevelCallNumberSuffix": {
"type": "string",
"description": "Suffix of the call number on the item level."
},
"itemLevelCallNumberTypeId": {
"type": "string",
"description": "Identifies the source of the call number, e.g., LCC, Dewey, NLM, etc."
},
"effectiveCallNumberComponents": {
"type": "object",
"description": "Elements of a full call number generated from the item or holding",
"properties": {
"callNumber": {
"type": "string",
"description": "Effective Call Number is an identifier assigned to an item or its holding and associated with the item.",
"readonly": true
},
"prefix": {
"type": "string",
"description": "Effective Call Number Prefix is the prefix of the identifier assigned to an item or its holding and associated with the item.",
"readonly": true
},
"suffix": {
"type": "string",
"description": "Effective Call Number Suffix is the suffix of the identifier assigned to an item or its holding and associated with the item.",
"readonly": true
},
"typeId": {
"type": "string",
"description": "Effective Call Number Type Id is the call number type id of the item, if available, otherwise that of the holding.",
"$ref": "uuid.json",
"readonly": true
}
},
"additionalProperties": false
},
"volume": {
"type": "string",
"description": "Volume is intended for monographs when a multipart monograph (e.g. a biography of George Bernard Shaw in three volumes)."
},
"enumeration": {
"type": "string",
"description": "Enumeration is the descriptive information for the numbering scheme of a serial."
},
"chronology": {
"type": "string",
"description": "Chronology is the descriptive information for the dating scheme of a serial."
},
"yearCaption": {
"type": "array",
"description": "In multipart monographs, a caption is a character(s) used to label a level of chronology, e.g., year 1985.",
"items": {
"type": "string"
},
"uniqueItems": true
},
"itemIdentifier": {
"type": "string",
"description": "Item identifier number, e.g. imported from the union catalogue (read only)."
},
"copyNumber": {
"type": "string",
"description": "Copy number is the piece identifier. The copy number reflects if the library has a copy of a single-volume monograph; one copy of a multi-volume, (e.g. Copy 1, or C.7.)"
},
"numberOfPieces": {
"type": "string",
"description": "Number of pieces. Used when an item is checked out or returned to verify that all parts are present (e.g. 7 CDs in a set)."
},
"descriptionOfPieces": {
"description": "Description of item pieces.",
"type": "string"
},
"numberOfMissingPieces": {
"type": "string",
"description": "Number of missing pieces."
},
"missingPieces": {
"type": "string",
"description": "Description of the missing pieces. "
},
"missingPiecesDate": {
"type": "string",
"description": "Date when the piece(s) went missing."
},
"itemDamagedStatusId": {
"description": "Item dame status id identifier.",
"type": "string"
},
"itemDamagedStatusDate": {
"description": "Date and time when the item was damaged.",
"type": "string"
},
"administrativeNotes":{
"type": "array",
"description": "Administrative notes",
"minItems": 0,
"items": {
"type": "string"
}
},
"notes": {
"type": "array",
"description": "Notes about action, copy, binding etc.",
"items": {
"type": "object",
"properties": {
"itemNoteTypeId": {
"type": "string",
"description": "ID of the type of note"
},
"itemNoteType": {
"description": "Type of item's note",
"type": "object",
"$ref": "itemnotetype.json",
"javaType": "org.folio.rest.jaxrs.model.itemNoteTypeVirtual",
"readonly": true,
"folio:isVirtual": true,
"folio:linkBase": "item-note-types",
"folio:linkFromField": "itemNoteTypeId",
"folio:linkToField": "id",
"folio:includedElement": "itemNoteTypes.0"
},
"note": {
"type": "string",
"description": "Text content of the note"
},
"staffOnly": {
"type": "boolean",
"description": "If true, determines that the note should not be visible for others than staff",
"default": false
}
}
}
},
"circulationNotes": {
"type": "array",
"description": "Notes to be displayed in circulation processes",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The id of the circulation note"
},
"noteType": {
"type": "string",
"description": "Type of circulation process that the note applies to",
"enum": ["Check in", "Check out"]
},
"note": {
"type": "string",
"description": "Text to display"
},
"source": {
"type": "object",
"description": "The user who added/updated the note. The property is generated by the server and needed to support sorting. Points to /users/{id} resource.",
"properties": {
"id": {
"type": "string",
"description": "The id of the user who added/updated the note. The user information is generated by the server and needed to support sorting. Points to /users/{id} resource."
},
"personal": {
"type": "object",
"description": "Personal information about the user",
"properties": {
"lastName": {
"description": "The user's last name",
"type": "string"
},
"firstName": {
"description": "The user's first name",
"type": "string"
}
}
}
}
},
"date": {
"type": "string",
"description": "Date and time the record is added/updated. The property is generated by the server and needed to support sorting."
},
"staffOnly": {
"type": "boolean",
"description": "Flag to restrict display of this note",
"default": false
}
},
"additionalProperties": false
}
},
"status": {
"description": "The status of the item",
"type": "object",
"properties": {
"name": {
"description": "Name of the status e.g. Available, Checked out, In transit",
"type": "string",
"enum": [
"Aged to lost",
"Available",
"Awaiting pickup",
"Awaiting delivery",
"Checked out",
"Claimed returned",
"Declared lost",
"In process",
"In process (non-requestable)",
"In transit",
"Intellectual item",
"Long missing",
"Lost and paid",
"Missing",
"On order",
"Paged",
"Restricted",
"Order closed",
"Unavailable",
"Unknown",
"Withdrawn"
]
},
"date": {
"description": "Date and time when the status was last changed",
"type": "string",
"format": "date-time",
"readonly": true
}
},
"required": ["name"],
"additionalProperties": false
},
"materialType": {
"description": "Item's material type",
"type": "object",
"$ref": "materialtype.json"
},
"permanentLoanType": {
"type": "object",
"description": "The permanent loan type, is the default loan type for a given item. Loan types are tenant-defined.",
"$ref":"loantype.json"
},
"temporaryLoanType": {
"type": "object",
"description": "Temporary loan type, is the temporary loan type for a given item.",
"$ref":"loantype.json"
},
"permanentLocation": {
"type": "object",
"description": "Permanent item location is the default location, shelving location, or holding which is a physical place where items are stored, or an Online location.",
"$ref": "locations/location.json"
},
"temporaryLocation": {
"type": "object",
"description": "Temporary item location is the temporarily location, shelving location, or holding which is a physical place where items are stored, or an Online location.",
"$ref": "locations/location.json"
},
"effectiveLocation": {
"type": "object",
"description": "Read only current home location for the item.",
"$ref": "locations/location.json",
"readonly": true
},
"electronicAccess": {
"type": "array",
"description": "References for accessing the item by URL.",
"items": {
"type": "object",
"properties": {
"uri": {
"type": "string",
"description": "uniform resource identifier (URI) is a string of characters designed for unambiguous identification of resources"
},
"linkText": {
"type": "string",
"description": "the value of the MARC tag field 856 2nd indicator, where the values are: no information provided, resource, version of resource, related resource, no display constant generated"
},
"materialsSpecification": {
"type": "string",
"description": "materials specified is used to specify to what portion or aspect of the resource the electronic location and access information applies (e.g. a portion or subset of the item is electronic, or a related electronic resource is being linked to the record)"
},
"publicNote": {
"type": "string",
"description": "URL public note to be displayed in the discovery"
},
"relationshipId": {
"type": "string",
"description": "relationship between the electronic resource at the location identified and the item described in the record as a whole"
}
},
"additionalProperties": false,
"required": [
"uri"
]
}
},
"inTransitDestinationServicePointId": {
"description": "Service point an item is intended to be transited to (should only be present when in transit)",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
},
"statisticalCodeIds": {
"type": "array",
"description": "List of statistical code IDs",
"items": {
"type": "string"
},
"uniqueItems": true
},
"purchaseOrderLineIdentifier": {
"type": "string",
"description": "ID referencing a remote purchase order object related to this item"
},
"tags": {
"description": "arbitrary tags associated with this item",
"id": "tags",
"type": "object",
"$ref": "raml-util/schemas/tags.schema"
},
"metadata": {
"type": "object",
"$ref": "raml-util/schemas/metadata.schema",
"readonly": true
},
"lastCheckIn": {
"type": "object",
"additionalProperties": false,
"description": "Information about when an item was last scanned in the Inventory app.",
"properties": {
"dateTime": {
"type": "string",
"description": "Date and time of the last check in of the item.",
"format": "date-time"
},
"servicePointId": {
"type": "string",
"description": "Service point ID being used by a staff member when item was scanned in Check in app.",
"$ref": "uuid.json"
},
"staffMemberId": {
"type": "string",
"description": "ID a staff member who scanned the item",
"$ref": "uuid.json"
}
}
}
},
"additionalProperties": false,
"required": [
"materialType",
"instanceRecord",
"permanentLoanType",
"holdingsRecord",
"status"
]
}
Example:
{
"id": "0b96a642-5e7f-452d-9cae-9cee66c9a892",
"instanceRecord": {
"id": "601a8dc4-dee7-48eb-b03f-d02fdf0debd0",
"source": "Local: MARC",
"title": "ADVANCING LIBRARY EDUCATION: TECHNOLOGICAL INNOVATION AND INSTRUCTIONAL DESIGN",
"contributors": [
{
"name": "Sigal, Ari",
"contributorNameTypeId": "2b94c631-fca9-4892-a730-03ee529ffe2a",
"primary": true
}
],
"identifiers": [
{
"identifierTypeId": "2e48e713-17f3-4c13-a9f8-23845bb210af",
"value": "9781466636897"
},
{
"identifierTypeId": "6051f95c-028e-4c6a-8a9e-ee689dd51453",
"value": "1"
}
],
"instanceTypeId": "2b94c631-fca9-4892-a730-03ee529ffe2c",
"tags" : {
"tagList" : [
"important"
]
}
},
"holdingsRecord": {
"id": "65cb2bf0-d4c2-4886-8ad0-b76f1ba75d61",
"instanceId": "601a8dc4-dee7-48eb-b03f-d02fdf0debd0",
"permanentLocationId": "d9cd0bed-1b49-4b5e-a7bd-064b8d177231",
"holdingsStatements": [
{
"statement": "Line 1",
"note": "Note to line 1"
},
{
"statement": "Line 2",
"note": "Note to line2"
}
],
"tags" : {
"tagList" : [
"important"
]
}
},
"barcode": "645398607547",
"status": {
"name": "In transit"
},
"materialType": {
"name": "book"
},
"permanentLoanType": {
"id": "2b94c631-fca9-4892-a730-03ee529ffe27",
"name": "Can circulate"
},
"inTransitDestinationServicePointId": "5b31ec8c-95a7-4b91-95cc-b551a74b91ca",
"tags" : {
"tagList" : [
"important"
]
}
}
HTTP status code 401
Not authorized to perform requested action
Body
Media type: text/plain
Type: any
Example:
unable to get retrieve item -- unauthorized
HTTP status code 404
Item with a given ID not found
Body
Media type: text/plain
Type: any
Example:
"item not found"
HTTP status code 500
Internal server error, e.g. due to misconfiguration
Body
Media type: text/plain
Type: any
Example:
internal server error, contact administrator