Newer
Older
web-services / biblio-tools / v1 / wos / fetch.ini
# OpenAPI Documentation - JSON format (dot notation)
mimeType = application/json

post.operationId = post-v1-wos-fetch
post.description = Recherche et récuperation dans le Web of science
post.summary = Récupération de notices WOS à partir d'un tableau de requetes
post.tags.0 = biblio-tools
post.responses.default.content.application/json.example.0.value = { ... }
post.responses.default.content.application/json.schema.$ref =  #/components/schemas/JSONStream
post.responses.default.description = une réponse sous forme d'un objet ou n/a pour chaque DOI
post.requestBody.content.application/json.example.0.value.databaseId = WOK
post.requestBody.content.application/json.example.0.value.usrQuery = TS=(cadmium)
post.requestBody.content.application/json.example.0.value.count = 5
post.requestBody.content.application/json.example.0.value.firstRecord = 1
post.requestBody.content.application/json.schema.$ref = #/components/schemas/JSONStream
post.requestBody.required = true
post.parameters.0.description = Indenter le JSON résultant
post.parameters.0.in = query
post.parameters.0.name = indent
post.parameters.0.schema.type = boolean

# Necessary plugins
[use]
plugin = @ezs/basics
plugin = @ezs/analytics

# Flow configuration
[JSONParse]
separator = *

[env]
path = indent
value = true

path = token
value = env('WOS_API_KEY')

[expand]
path = value
size = 1
cacheName = post-v1-wos-fetch

[expand/URLFetch]
path = value
target = value
url = https://wos-api.clarivate.com/api/wos/
json = true
timeout = 60000
; évite l'arret du traitement, en cas d'erreur, on retourne la valeur non traitée
noerror = true
header = accept: application/json
header = env('token').prepend('X-ApiKey:')
header = Content-Type: application/json

[expand/replace]
path = id
value = get('id')
path = value
value = get('value.Data.Records.records.REC', 'n/a')

[replace]
path = id
value = self().omit('value')
path = value
value = get('value', 'n/a')

[exploding]
id = id
value = value

[assign]
path = id.value
value = get('value')

[exchange]
value = get('id')

[dump]
indent = env('indent', false)