Ajout d'exemple dans le swagger api

pull/2163/head
Jérémy Rialland 2022-06-09 17:51:19 +02:00 committed by Johan Girod
parent c59e2a33af
commit 6b50c81091
5 changed files with 77 additions and 40 deletions

View File

@ -11,4 +11,52 @@ info:
servers:
- url: /api/v1/
paths: {}
paths:
/evaluate:
post:
requestBody:
content:
application/json:
examples:
SalaireBrutEnNet:
value:
{
'situation':
{
'contrat salarié . rémunération . brut de base':
{ 'valeur': 4200, 'unité': '€ / mois' },
'contrat salarié': "'CDI'",
},
'expressions': ['contrat salarié . rémunération . net'],
}
MicroEntreprise:
value:
{
situation:
{
"dirigeant . auto-entrepreneur . chiffre d'affaires": '42000 €/an',
'entreprise . activité': "'libérale'",
'entreprise . activité . libérale réglementée': 'non',
'entreprise . catégorie juridique': "'EI'",
'entreprise . catégorie juridique . EI . auto-entrepreneur': 'oui',
'dirigeant . auto-entrepreneur . impôt . versement libératoire': 'non',
'impôt . méthode de calcul': "'taux neutre'",
},
expressions:
[
{
'valeur': 'dirigeant . auto-entrepreneur . cotisations et contributions',
'unité': '€/an',
},
'dirigeant . rémunération . impôt',
'dirigeant . auto-entrepreneur . net après impôt',
],
}
/rules/{rule}:
get:
parameters:
- examples:
SalaireNet:
value: 'contrat salarié . rémunération . net'
Impot:
value: 'impôt . méthode de calcul'

View File

@ -31,6 +31,13 @@ export function mergeDeep(
target[key] as Record<string, unknown>,
source[key] as Record<string, unknown>
)
} else if (Array.isArray(target[key]) && Array.isArray(source[key])) {
return (target[key] as unknown[]).map((el, i) =>
mergeDeep(
el as Record<string, unknown>,
(source[key] as unknown[])[i] as Record<string, unknown>
)
) as unknown as Record<string, unknown>
} else {
Object.assign(target, { [key]: source[key] })
}

View File

@ -1139,17 +1139,14 @@ pages:
this API?</2><3>The my-company api is totally open and without
authentication, it is composed of 3 routes inspired by the methods of the
Publicodes interpreter: <1>/evaluate</1>, <4>/rules</4> and
<7>/rules/:rule</7>.</3><4><0>What is Publicodes?</0><1>It is a
declarative language developed by beta.gouv.fr and the Urssaf to encode
public interest algorithms.<1></1>All our calculation rules are written in
this language.<3></3><4>Learn more about publicodes</4></1></4><5>POST
/evaluate</5><6>Allows to evaluate the expressions of publicode with a
given situation<1></1>You will find more info on the structure of the JSON
to send on our <4>Swagger</4>.</6><7>GET /rules</7><8>Retrieve all
publicode rules</8><9>GET /rules/:rule</9><10>Retrieve a publicodes
rule</10><11>Example</11><12>Here is an example of how to use the
different routes, you can explore their code in the
<1>example</1>folder</12><13><0></0></13>"
<7>/rules/:rule</7>.<9></9><10></10>Find more information on our
<13>Swagger UI</13>.<15></15></3><4><0>What is Publicodes?</0><1>It is a
declarative language developed by beta.gouv.fr and Urssaf to encode public
interest algorithms.<1></1>All our calculation rules are therefore written
in this language.<3></3><4>Learn more about
publicodes</4></1></4><5>Example</5><6>Here is an example of how to use
the different routes, you can explore their code in the
<1>example</1>folder</6><7><0></0></7>"
bibliothèque: "<0>Integrate our calculation library</0><1>If you think that your
website or service would benefit from displaying salary calculations, for
example switching from gross to net salary, good news: all the tax and

View File

@ -903,18 +903,14 @@ pages:
mon-entreprise est totalement ouverte et sans authentification, elle se
compose de 3 routes qui s'inspirent des méthodes de l'interpréteur
Publicodes : <1>/evaluate</1>, <4>/rules</4> et
<7>/rules/:rule</7>.</3><4><0>Qu'est ce que Publicodes ?</0><1>C'est un
language déclaratif développé par beta.gouv.fr et l'Urssaf pour encoder
des algorithmes d'intérêt public.<1></1>Toutes nos règles de calculs sont
donc écrites dans ce language.<3></3><4>En savoir plus sur
publicodes</4></1></4><5>POST /evaluate</5><6>Permet d'évaluer les
expressions de publicode avec une situation donnée<1></1>Vous trouverez
plus d'infos sur la structure du JSON à envoyer sur notre
<4>Swagger</4>.</6><7>GET /rules</7><8>Permet de récupérer toutes les
règles publicodes</8><9>GET /rules/:rule</9><10>Permet de récupérer une
règle publicodes</10><11>Exemple</11><12>Voici un exemple d'utilisation
des différentes routes, vous pouvez explorer leur code dans le dossier
<1>example</1></12><13><0></0></13>"
<7>/rules/:rule</7>.<9></9><10></10>Retrouvez plus d'informations sur
notre <13>Swagger UI</13>.<15></15></3><4><0>Qu'est ce que Publicodes
?</0><1>C'est un language déclaratif développé par beta.gouv.fr et
l'Urssaf pour encoder des algorithmes d'intérêt public.<1></1>Toutes nos
règles de calculs sont donc écrites dans ce language.<3></3><4>En savoir
plus sur publicodes</4></1></4><5>Exemple</5><6>Voici un exemple
d'utilisation des différentes routes, vous pouvez explorer leur code dans
le dossier <1>example</1></6><7><0></0></7>"
bibliothèque: "<0>Intégrez notre bibliothèque de calcul</0><1>Si vous pensez que
votre site ou service gagnerait à afficher des calculs de salaire, par
exemple passer du salaire brut au salaire net, bonne nouvelle : tous les

View File

@ -33,6 +33,11 @@ export default function API() {
l'interpréteur Publicodes : <InlineCode>/evaluate</InlineCode>,{' '}
<InlineCode>/rules</InlineCode> et{' '}
<InlineCode>/rules/:rule</InlineCode>.
<br />
<br />
Retrouvez plus d'informations sur notre{' '}
<Link href="/api/v1/doc/#/publicodes-api/evaluate">Swagger UI</Link>.
<br />
</Body>
<Message type="info">
@ -47,22 +52,6 @@ export default function API() {
</Body>
</Message>
<H3>POST /evaluate</H3>
<Body>
Permet d'évaluer les expressions de publicode avec une situation
donnée
<br />
Vous trouverez plus d'infos sur la structure du JSON à envoyer sur
notre{' '}
<Link href="/api/v1/doc/#/publicodes-api/evaluate">Swagger</Link>.
</Body>
<H3>GET /rules</H3>
<Body>Permet de récupérer toutes les règles publicodes</Body>
<H3>GET /rules/:rule</H3>
<Body>Permet de récupérer une règle publicodes</Body>
<H2>Exemple</H2>
<Body>
Voici un exemple d'utilisation des différentes routes, vous pouvez