Newer
Older
web-services / biblio-tools / v1 / inspirehep / works / expand.ini
@Nicolas Thouvenin Nicolas Thouvenin on 30 Mar 2 KB use swaggerid as cacheName
# OpenAPI Documentation - JSON format (dot notation)
mimeType = application/json

post.operationId = post-v1-inspirehep-works-expand
post.description = Récupération des métadonnées associées à un DOI dans inspireHEP
post.summary = Récupération à partir d'un tableau d'objets avec à minima un champ value contenant le DOI
post.tags.0 = biblio-tools
post.requestBody.content.application/json.example.0.id = 1
post.requestBody.content.application/json.example.0.value = 10.1103/PhysRevLett.19.1264
post.requestBody.content.application/json.schema.$ref = #/components/schemas/JSONStream
post.requestBody.required = true
post.responses.default.content.application/json.example.0.id = 1
post.responses.default.content.application/json.example.0.value = { ... }
post.responses.default.content.application/json.schema.$ref =  #/components/schemas/JSONStream
post.responses.default.description = Les prefixes DOI en version textuel
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 = basics
plugin = analytics
plugin = storage

# Flow configuration
[JSONParse]
legacy = false
separator = $

[expand]
path = value
cacheName = post-v1-inspirehep-works-expand

[expand/URLFetch]
url = get('value').prepend('https://inspirehep.net/api/doi/')
json = true
target = fix('value')
timeout = 5000
noerror = true

; Suppression de certains champs
[expand/exchange]
value = omit(['value.metadata.references'])

; Simplification de la structure de la notice
[expand/OBJFlatten]


[expand/replace]
path = id
value = get('id')
path = value
value = self().omit('id').mapKeys((val, key) => key.replace('value/', ''))

; Simplification de la structure du champs authorships
[expand/expand]
path = value.metadata/authors

[expand/expand/exploding]

[expand/expand/OBJFlatten]

[expand/expand/replace]
path = id
value = get('id')
path = value
value = self().omit('id').mapKeys((val, key) => key.replace('value/', ''))

[expand/expand/aggregate]

# On marque les réponses qui n'ont pas abouties
[swing]
test = has('value.id')
reverse = true

[swing/assign]
path = value
value = fix('n/a')

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