Проект

Общее

Профиль

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

Rustam Usmanov, 30.06.2015 15:31

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