Проект

Общее

Профиль

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

Rustam Usmanov, 30.06.2015 15:18

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