-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathjsonschema.inc.php
38 lines (37 loc) · 1.15 KB
/
jsonschema.inc.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<?php
/*PhpDoc:
name: jsonschema.inc.php
title: jsonschema.inc.php - construction du schema JSON d'un millésime
doc: |
cas intéressant:
http://localhost/geoapi/dido/id.php/datafiles/02622bc1-167c-4089-b14d-69c70b141c32/millesimes/2020-10/json-schema
Logique pour déterminer le type de la colonne:
- si une unité est définie alors il s'agit d'un nombre -> { "type": "number" }
- sinon c'est une chaine -> { "type": "string" }
On ajoute le champ unit pour l'unité en clair.
journal: |
10/7/2021:
- ajout d'un titre au schéma
8/7/2021:
- définition d'un schéma JSON
7/7/2021:
- création d'un fantome
*/
function jsonSchema(array $dido, string $uri): array {
$schema = [
'$schema'=> 'http://json-schema.org/draft-07/schema#',
'$id'=> $uri,
'title'=> "Schema JSON du millésime $dido[millesime]",
'type'=> 'object',
'properties'=> [],
//'dido'=> $dido,
];
foreach ($dido['columns'] as $column) {
$schema['properties'][$column['name']] = [
'type'=> $column['unit'] ? 'number' : 'string',
'unit'=> $column['unit'],
'description'=> $column['description'],
];
}
return $schema;
}