Проект

Общее

Профиль

Руководство пользователя » История » Версия 15

Rustam Usmanov, 27.04.2015 17:33

1 1 Rustam Usmanov
h1. Руководство пользователя
2 2 Rustam Usmanov
3 14 Rustam Usmanov
{{toc}}
4
5 13 Rustam Usmanov
h2. Поиск и извлечение записей
6
7
Поиск и извлечение записей осуществляются по протоколу "SRU 2.0":http://www.loc.gov/standards/sru/sru-2-0.html. Поддерживаются:
8
* Язык запросов "PQF":http://www.indexdata.com/yaz/doc/tools.html#PQF (queryType=pqf) - для работы со всеми БД Руслан.
9 15 Rustam Usmanov
* Язык запросов "CQL":http://www.loc.gov/standards/sru/cql/spec.html - только в части работы с результирующим множеством (query=cql.resultSetId=default).
10 13 Rustam Usmanov
* Одновременное использование нескольких результирующих множеств. Создание и удаление результирующих множеств осуществляется сервисом автоматически. При отсутствии в запросе на поиск параметра resultSetTTL создается результирующее множество с именем ??default??. В противном случае создается результирующее множество с уникальным именем.
11
* Значения ??string?? и ??xml?? параметра recordXMLEscaping.
12
* Ответные сообщения в форматах XML и JSON. Запрос того или иного формата осуществляется при помощи заголовка HTTP Accept - соотв. поддерживаются значения ??application/xml??, ??application/json??.
13
* Извлечение записей в схеме OPAC - для этого следует использовать заголовок HTTP Accept со значением ??application/opac+xml?? либо ??application/opac+json??.
14
15 3 Rustam Usmanov
h2. Заказ документа (бронирование, заказ копии)
16 1 Rustam Usmanov
17 5 Rustam Usmanov
Заказ документа осуществляется в соответствии с NISO Circulation Interchange Protocol (NCIP) v. 2.0.2. Запрос отправляется методом POST по адресу "ncip" относительно корневого URL Web-сервисов (например, http://testbed.ruslan.ru:8080/rrs-web/ncip).
18 3 Rustam Usmanov
19 6 Rustam Usmanov
h3. Входные параметры (обязательные)
20 7 Rustam Usmanov
21 6 Rustam Usmanov
* Идентификатор пользователя, от имени которого осуществляется заказ - UserId/UserIdentifierValue.
22
* Идентификатор библиографической записи, описывающей объект заказа - BibliographicId/BibliographicRecordId/BibliographicRecordIdentifier.
23 1 Rustam Usmanov
* Идентификатор заказываемой услуги - RequestType. Значения: ??Hold?? - бронирование, ??Non-returnable Copy?? - копия.
24 7 Rustam Usmanov
* Область применения запроса - RequestScopeType. Значения: ??Bibliographic Item?? - любой экземпляр, ??Item?? - конкретный экземпляр.
25 6 Rustam Usmanov
* Идентификатор места выдачи заказа - PickupLocation.
26
* Идентификатор домашней организации пользователя - UserId/AgencyId.
27
* Идентификатор организации-держателя заказываемого документа - BibliographicId/BibliographicRecordId/AgencyId
28
29 8 Rustam Usmanov
h3. Выходные параметры (обязательные)
30
31
* Идентификатор пользователя, от имени которого осуществляется заказ - UserId/UserIdentifierValue.
32
* Идентификатор заказываемой услуги - RequestType. Значения: ??Hold?? - бронирование, ??Non-returnable Copy?? - копия.
33
* Область применения запроса - RequestScopeType. Значения: ??Bibliographic Item?? - любой экземпляр, ??Item?? - конкретный экземпляр.
34
* Идентификатор заказа - RequestId/RequestIdentifierValue. Является ключом записи на заказ в БД заказов.
35
* Идентификатор домашней организации пользователя - UserId/AgencyId.
36
* Сведения о проблемах возникших в процессе обработки запроса - Problem.
37
38 9 Rustam Usmanov
Запрос XML:
39 1 Rustam Usmanov
<pre><code class="xml">
40
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
41
<ns1:NCIPMessage xmlns:ns1="http://www.niso.org/2008/ncip">
42
  <ns1:RequestItem>
43
    <ns1:UserId>
44
      <ns1:AgencyId>19013582</ns1:AgencyId>
45
      <ns1:UserIdentifierValue>sip</ns1:UserIdentifierValue>
46
    </ns1:UserId>
47
    <ns1:BibliographicId>
48
      <ns1:BibliographicRecordId>
49
        <ns1:BibliographicRecordIdentifier>RU\SPSTU\books\241</ns1:BibliographicRecordIdentifier>
50
        <ns1:AgencyId>19013582</ns1:AgencyId>
51
      </ns1:BibliographicRecordId>
52
    </ns1:BibliographicId>
53
    <ns1:RequestType ns1:Scheme="http://www.niso.org/ncip/v1_0/imp1/schemes/requesttype/requesttype.scm">Hold</ns1:RequestType>
54
    <ns1:RequestScopeType ns1:Scheme="http://www.niso.org/ncip/v1_0/imp1/schemes/requestscopetype/requestscopetype.scm">Bibliographic Item</ns1:RequestScopeType>
55
    <ns1:PickupLocation>СПбГПУ/ОНЛ/АбонОНЛ</ns1:PickupLocation>
56
  </ns1:RequestItem>
57 3 Rustam Usmanov
</ns1:NCIPMessage>
58
</code></pre>
59 1 Rustam Usmanov
60 9 Rustam Usmanov
Запрос JSON:
61
<pre><code class="json">
62
{
63
    "RequestItem": {
64
        "UserId": {
65
            "AgencyId": {
66
                "value": "19013582"
67
            },
68
            "UserIdentifierValue": "002"
69
        },
70
        "BibliographicId": {
71
            "BibliographicRecordId": {
72
                "BibliographicRecordIdentifier": "RU\\SPSTU\\books\\241",
73
                "AgencyId": {
74
                    "value": "19013582"
75
                }
76
            }
77
        },
78
        "RequestType": {
79
            "value": "Hold",
80
            "Scheme": "http://www.niso.org/ncip/v1_0/imp1/schemes/requesttype/requesttype.scm"
81
        },
82
        "RequestScopeType": {
83
            "value": "Bibliographic Item",
84
            "Scheme": "http://www.niso.org/ncip/v1_0/imp1/schemes/requestscopetype/requestscopetype.scm"
85
        },
86
        "PickupLocation": {
87
            "value": "СПбГПУ/ОНЛ/АбонОНЛ"
88
        }
89
    }
90
}
91
</code></pre>
92
93
Ответ XML (неуспешное завершение):
94 3 Rustam Usmanov
<pre><code class="xml">
95
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
96
<ns1:NCIPMessage xmlns:ns1="http://www.niso.org/2008/ncip">
97
  <ns1:RequestItemResponse>
98
    <ns1:Problem>
99
      <ns1:ProblemType>Diagnostic [220] Additional Info : </ns1:ProblemType>
100 1 Rustam Usmanov
      <ns1:ProblemDetail>220: </ns1:ProblemDetail>
101 4 Rustam Usmanov
    </ns1:Problem>
102
  </ns1:RequestItemResponse>
103 1 Rustam Usmanov
</ns1:NCIPMessage>
104
</code></pre>
105
106 9 Rustam Usmanov
Ответ JSON (неуспешное завершение):
107
<pre><code class="json">
108
{
109
    "RequestItemResponse": {
110
        "Problem": {
111
            "ProblemType": {
112
                "value": "Diagnostic [220] Additional Info : "
113
            },
114
            "ProblemDetail": "220: "
115
        }
116
    }
117
}
118
</code></pre>
119
120 11 Rustam Usmanov
Ответ XML (успешное завершение):
121 4 Rustam Usmanov
<pre><code class="xml">
122
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
123
<ns1:NCIPMessage xmlns:ns1="http://www.niso.org/2008/ncip">
124
  <ns1:RequestItemResponse>
125
    <ns1:UserId>
126
      <ns1:AgencyId>19013582</ns1:AgencyId>
127
      <ns1:UserIdentifierValue>sip</ns1:UserIdentifierValue>
128
    </ns1:UserId>
129
    <ns1:RequestType ns1:Scheme="http://www.niso.org/ncip/v1_0/imp1/schemes/requesttype/requesttype.scm">Hold</ns1:RequestType>
130
    <ns1:RequestScopeType ns1:Scheme="http://www.niso.org/ncip/v1_0/imp1/schemes/requestscopetype/requestscopetype.scm">Bibliographic Item</ns1:RequestScopeType>
131
    <ns1:RequestId>
132
      <ns1:RequestIdentifierValue>302</ns1:RequestIdentifierValue>
133 1 Rustam Usmanov
    </ns1:RequestId>
134
  </ns1:RequestItemResponse>
135
</ns1:NCIPMessage>
136 9 Rustam Usmanov
</code></pre>
137
138
Ответ JSON (успешное завершение):
139
<pre><code class="json">
140
{
141
    "RequestItemResponse": {
142
        "UserId": {
143
            "AgencyId": {
144
                "value": "19013582"
145
            },
146
            "UserIdentifierValue": "002"
147
        },
148
        "RequestType": {
149
            "value": "Hold",
150
            "Scheme": "http://www.niso.org/ncip/v1_0/imp1/schemes/requesttype/requesttype.scm"
151
        },
152
        "RequestScopeType": {
153
            "value": "Bibliographic Item",
154
            "Scheme": "http://www.niso.org/ncip/v1_0/imp1/schemes/requestscopetype/requestscopetype.scm"
155
        },
156
        "RequestId": {
157
            "RequestIdentifierValue": "373"
158
        }
159
    }
160
}
161 1 Rustam Usmanov
</code></pre>