Руководство пользователя » История » Редакция 21
Редакция 20 (Rustam Usmanov, 30.06.2015 15:14) → Редакция 21/27 (Rustam Usmanov, 30.06.2015 15:18)
h1. Руководство пользователя
{{toc}}
h2. Получение списка баз данных, поддерживаемых сервером
Получение списка баз данных, поддерживаемых сервером, осуществляется по протоколу WebDAV:http://tools.ietf.org/html/rfc4918.
h2. Поиск и извлечение записей
Поиск и извлечение записей осуществляются по протоколу "SRU 2.0":http://www.loc.gov/standards/sru/sru-2-0.html. Поддерживаются:
* Язык запросов "PQF":http://www.indexdata.com/yaz/doc/tools.html#PQF (*queryType=pqf*) - для работы со всеми БД Руслан.
* Язык запросов "CQL":http://www.loc.gov/standards/sru/cql/spec.html - только в части работы с результирующим множеством (например, *query=cql.resultSetId=default*).
* Одновременное использование нескольких результирующих множеств. Создание и удаление результирующих множеств осуществляется сервисом автоматически. При отсутствии в запросе на поиск параметра *resultSetTTL* создается результирующее множество с именем ??default??. В противном случае создается результирующее множество с уникальным именем.
* Значения ??string?? и ??xml?? параметра *recordXMLEscaping*.
* Ответные сообщения в форматах XML и JSON. Запрос того или иного формата осуществляется при помощи заголовка HTTP *Accept* - соотв. поддерживаются значения ??application/xml??, ??application/json??.
* Извлечение записей в схеме OPAC - для этого следует использовать заголовок HTTP *Accept* со значением ??application/opac+xml?? либо ??application/opac+json??.
* Извлечение метаданных БД (Explain).
Запрос отправляется методом GET по адресу "/db/name" относительно корневого URL Web-сервисов, где name - название БД, в которой осуществляется поиск (например, http://testbed.ruslan.ru:8080/rrs-web/db/books). Одновременный поиск в нескольких БД возможен при помощи указания в качестве названия БД нескольких названий БД, соединённых знаком "+" (например, http://testbed.ruslan.ru:8080/rrs-web/db/books+serial).
h2. Заказ документа (бронирование, заказ копии)
Заказ документа осуществляется в соответствии с NISO Circulation Interchange Protocol (NCIP) v. 2.0.2. Запрос отправляется методом POST по адресу "ncip" относительно корневого URL Web-сервисов (например, http://testbed.ruslan.ru:8080/rrs-web/ncip).
h3. Входные параметры (обязательные)
* Идентификатор пользователя, от имени которого осуществляется заказ - *UserId/UserIdentifierValue*.
* Идентификатор библиографической записи, описывающей объект заказа - *BibliographicId/BibliographicRecordId/BibliographicRecordIdentifier*.
* Идентификатор заказываемой услуги - *RequestType*. Значения: ??Hold?? - бронирование, ??Non-returnable Copy?? - копия.
* Область применения запроса - *RequestScopeType*. Значения: ??Bibliographic Item?? - любой экземпляр, ??Item?? - конкретный экземпляр.
* Идентификатор места выдачи заказа - *PickupLocation*.
* Идентификатор домашней организации пользователя - *UserId/AgencyId*.
* Идентификатор организации-держателя заказываемого документа - *BibliographicId/BibliographicRecordId/AgencyId*.
h3. Выходные параметры (обязательные)
* Идентификатор пользователя, от имени которого осуществляется заказ - *UserId/UserIdentifierValue*.
* Идентификатор заказываемой услуги - *RequestType*. Значения: ??Hold?? - бронирование, ??Non-returnable Copy?? - копия.
* Область применения запроса - *RequestScopeType*. Значения: ??Bibliographic Item?? - любой экземпляр, ??Item?? - конкретный экземпляр.
* Идентификатор заказа - *RequestId/RequestIdentifierValue*. Является ключом записи на заказ в БД заказов.
* Идентификатор домашней организации пользователя - *UserId/AgencyId*.
* Сведения о проблемах возникших в процессе обработки запроса - *Problem*.
Запрос XML:
<pre><code class="xml">
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ns1:NCIPMessage xmlns:ns1="http://www.niso.org/2008/ncip">
<ns1:RequestItem>
<ns1:UserId>
<ns1:AgencyId>19013582</ns1:AgencyId>
<ns1:UserIdentifierValue>sip</ns1:UserIdentifierValue>
</ns1:UserId>
<ns1:BibliographicId>
<ns1:BibliographicRecordId>
<ns1:BibliographicRecordIdentifier>RU\SPSTU\books\241</ns1:BibliographicRecordIdentifier>
<ns1:AgencyId>19013582</ns1:AgencyId>
</ns1:BibliographicRecordId>
</ns1:BibliographicId>
<ns1:RequestType ns1:Scheme="http://www.niso.org/ncip/v1_0/imp1/schemes/requesttype/requesttype.scm">Hold</ns1:RequestType>
<ns1:RequestScopeType ns1:Scheme="http://www.niso.org/ncip/v1_0/imp1/schemes/requestscopetype/requestscopetype.scm">Bibliographic Item</ns1:RequestScopeType>
<ns1:PickupLocation>СПбГПУ/ОНЛ/АбонОНЛ</ns1:PickupLocation>
</ns1:RequestItem>
</ns1:NCIPMessage>
</code></pre>
Запрос JSON:
<pre><code class="json">
{
"RequestItem": {
"UserId": {
"AgencyId": {
"value": "19013582"
},
"UserIdentifierValue": "002"
},
"BibliographicId": {
"BibliographicRecordId": {
"BibliographicRecordIdentifier": "RU\\SPSTU\\books\\241",
"AgencyId": {
"value": "19013582"
}
}
},
"RequestType": {
"value": "Hold",
"Scheme": "http://www.niso.org/ncip/v1_0/imp1/schemes/requesttype/requesttype.scm"
},
"RequestScopeType": {
"value": "Bibliographic Item",
"Scheme": "http://www.niso.org/ncip/v1_0/imp1/schemes/requestscopetype/requestscopetype.scm"
},
"PickupLocation": {
"value": "СПбГПУ/ОНЛ/АбонОНЛ"
}
}
}
</code></pre>
Ответ XML (неуспешное завершение):
<pre><code class="xml">
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ns1:NCIPMessage xmlns:ns1="http://www.niso.org/2008/ncip">
<ns1:RequestItemResponse>
<ns1:Problem>
<ns1:ProblemType>Diagnostic [220] Additional Info : </ns1:ProblemType>
<ns1:ProblemDetail>220: </ns1:ProblemDetail>
</ns1:Problem>
</ns1:RequestItemResponse>
</ns1:NCIPMessage>
</code></pre>
Ответ JSON (неуспешное завершение):
<pre><code class="json">
{
"RequestItemResponse": {
"Problem": {
"ProblemType": {
"value": "Diagnostic [220] Additional Info : "
},
"ProblemDetail": "220: "
}
}
}
</code></pre>
Ответ XML (успешное завершение):
<pre><code class="xml">
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ns1:NCIPMessage xmlns:ns1="http://www.niso.org/2008/ncip">
<ns1:RequestItemResponse>
<ns1:UserId>
<ns1:AgencyId>19013582</ns1:AgencyId>
<ns1:UserIdentifierValue>sip</ns1:UserIdentifierValue>
</ns1:UserId>
<ns1:RequestType ns1:Scheme="http://www.niso.org/ncip/v1_0/imp1/schemes/requesttype/requesttype.scm">Hold</ns1:RequestType>
<ns1:RequestScopeType ns1:Scheme="http://www.niso.org/ncip/v1_0/imp1/schemes/requestscopetype/requestscopetype.scm">Bibliographic Item</ns1:RequestScopeType>
<ns1:RequestId>
<ns1:RequestIdentifierValue>302</ns1:RequestIdentifierValue>
</ns1:RequestId>
</ns1:RequestItemResponse>
</ns1:NCIPMessage>
</code></pre>
Ответ JSON (успешное завершение):
<pre><code class="json">
{
"RequestItemResponse": {
"UserId": {
"AgencyId": {
"value": "19013582"
},
"UserIdentifierValue": "002"
},
"RequestType": {
"value": "Hold",
"Scheme": "http://www.niso.org/ncip/v1_0/imp1/schemes/requesttype/requesttype.scm"
},
"RequestScopeType": {
"value": "Bibliographic Item",
"Scheme": "http://www.niso.org/ncip/v1_0/imp1/schemes/requestscopetype/requestscopetype.scm"
},
"RequestId": {
"RequestIdentifierValue": "373"
}
}
}
</code></pre>