Browse Source

dopo review Edison e IBM, tolto struttura di stato, completato HTTP response negative, manca gestione riferimenti in post/put (devono essere passati per id/link, non per esteso)

fabio 2 months ago
parent
commit
e8abc26508
1 changed files with 95 additions and 44 deletions
  1. 95 44
      panorama.yaml

+ 95 - 44
panorama.yaml

@@ -10,7 +10,7 @@ info:
     name: API Support
     email: support@panorama.edisonnext.it
 
-  version: 0.9.3
+  version: 0.9.4
   
   license:
     name: © 2025 - 2030 Copyright Edison Next Spa. All rights reserved
@@ -69,10 +69,13 @@ paths:
       responses:
         '201':
           description: Tipo creato
+        '422':
+          description: Tipo non valido
 
   /type/{id}:
     get:
       summary: Restituisce un singolo Tipo di Entità
+      operationId: getType
       tags: [Type]
       parameters:
         - in: path
@@ -110,6 +113,10 @@ paths:
       responses:
         '200':
           description: Tipo aggiornato
+        '404':
+          description: Tipo non trovato
+        '422':
+          description: Tipo non valido
 
     delete:
       summary: Elimina un Tipo (senza istanze di elementi) esistente (admin only)
@@ -125,6 +132,8 @@ paths:
       responses:
         '204':
           description: Tipo eliminato
+        '404':
+          description: Tipo non trovato
 
   /source:
     get:
@@ -154,6 +163,8 @@ paths:
       responses:
         '201':
           description: Fonte Dati creata
+        '422':
+          description: Fonte Dati non valida
 
   /source/{id}:
 
@@ -177,6 +188,10 @@ paths:
       responses:
         '200':
           description: Data Source aggiornata
+        '404':
+          description: Data Source non trovata
+        '422':
+          description: Data Source non valida
 
     delete:
       summary: Elimina una sorgente dati (vuota) esistente (admin only)
@@ -221,6 +236,8 @@ paths:
       responses:
         '201':
           description: Nomenclatura creata
+        '422':
+          description: Nomenclatura non valida
 
   /terminology/{id}:
 
@@ -241,7 +258,7 @@ paths:
               schema:
                 $ref: '#/components/schemas/Type'
         '404':
-          description: Tipo non trovato
+          description: Nomenclatura non trovata
 
     put:
       summary: Modifica una Nomenclatura esistente (admin only)
@@ -263,6 +280,10 @@ paths:
       responses:
         '200':
           description: Nomenclatura aggiornata
+        '404':
+          description: Nomenclatura non trovata
+        '422':
+          description: Nomenclatura non valida
 
     delete:
       summary: Elimina una Nomenclatura (senza riferimenti in qualche tipo) esistente (admin only)
@@ -278,6 +299,8 @@ paths:
       responses:
         '204':
           description: Nomenclatura eliminata
+        '404':
+          description: Nomenclatura non trovata
 
   /entity:
     get:
@@ -291,9 +314,9 @@ paths:
           explode: true
           schema:
             type: string
-        - name: catalog
+        - name: source
           in: query
-          description: Filter by data catalog
+          description: Filter by data source
           required: false
           explode: true
           schema:
@@ -327,12 +350,15 @@ paths:
             schema:
               $ref: '#/components/schemas/Entity'
       responses:
+        '422':
+          description: Entità non valida
         '201':
           description: Entità creata
 
   /entity/{id}:
     get:
       summary: Ottiene una singola entità
+      operationId: getEntity
       tags: [Entity]
       parameters:
         - in: path
@@ -370,6 +396,10 @@ paths:
       responses:
         '200':
           description: Entità aggiornata
+        '404':
+          description: Entità non trovata
+        '422':
+          description: Entità non valida
 
     delete:
       summary: Elimina un'entità
@@ -385,6 +415,8 @@ paths:
       responses:
         '204':
           description: Entità eliminata
+        '404':
+          description: Entità non trovata
 
   /state/{id}:
     put:
@@ -407,6 +439,10 @@ paths:
       responses:
         '200':
           description: Stato Entità aggiornato
+        '422':
+          description: Stato Entità non valido
+        '404':
+          description: Entità non trovata
 
   /history/{id}:
     get:
@@ -528,13 +564,22 @@ components:
         native:
           type: boolean
           description: Se il Tipo è nativo di piattaforma o importato
+          readOnly: true
           default: false
-        stateType:
-          $ref: '#/components/schemas/State'
+#        stateType:
+#          $ref: '#/components/schemas/State'
         syntax:
           type: string
           format: json
           description: Definizione (JSON-LD) della sintassi del Tipo di Entità
+          examples: 
+            - {
+                "@context": "https://json-ld.org/contexts/person.jsonld",
+                "@id": "http://dbpedia.org/resource/John_Lennon",
+                "name": "John Lennon",
+                "born": "1940-10-09",
+                "spouse": "http://dbpedia.org/resource/Cynthia_Lennon"
+              }
         terminology:
           $ref: '#/components/schemas/Terminology'
           examples:
@@ -546,32 +591,32 @@ components:
           examples: 
             - http://dati.beniculturali.it/cis/CulturalInstituteOrSite
 
-    State:
-      type: object
-      description: Definisce una possibile rappresentazione della situazione attuale nel «divenire» delle Entità di un certo Tipo
-      examples: 
-        - Aperto o Chiuso
-        - Acceso o Spento
-        - (StatoSemaforo) Rosso, Giallo, Verde, Lampeggiante, Spento
-        - TemperaturaAmbiente - la temperatura attuale di un ambiente in gradi centigradi
-      properties:
-        id:
-          type: string
-          format: uri
-          description: ID univoco del Tipo di Stato
-        name:
-          type: string
-          description: Nome canonico del Tipo di Stato
-        uom:
-          type: string
-          description: Unità di misura (per grandezze scalari)
-        kind:
-          type: string
-          description: La tipologia elementare del Tipo di Stato (grandezza con unità di misura, stringa, eccetera)
-          examples:
-            - Enumeration
-            - Number
-            - String
+#    State:
+#      type: object
+#      description: Definisce una possibile rappresentazione della situazione attuale nel «divenire» delle Entità di un certo Tipo
+#      examples: 
+#        - Aperto o Chiuso
+#        - Acceso o Spento
+#        - (StatoSemaforo) Rosso, Giallo, Verde, Lampeggiante, Spento
+#        - TemperaturaAmbiente - la temperatura attuale di un ambiente in gradi centigradi
+#      properties:
+#        id:
+#          type: string
+#          format: uri
+#          description: ID univoco del Tipo di Stato
+#        name:
+#          type: string
+#          description: Nome canonico del Tipo di Stato
+#        uom:
+#          type: string
+#          description: Unità di misura (per grandezze scalari)
+#        kind:
+#          type: string
+#          description: La tipologia elementare del Tipo di Stato (grandezza con unità di misura, stringa, eccetera)
+#          examples:
+#            - Enumeration
+#            - Number
+#            - String
 
     Entity:
       type: object
@@ -580,7 +625,9 @@ components:
       properties:
         id:
           type: string
+          format: uri
           description: ID univoco dell'Entità sulla piattaforma
+          examples: [20738]
         name:
           type: string
           description: Nome canonico dell'Entità sulla piattaforma
@@ -615,22 +662,23 @@ components:
           properties:
             value:
               type: string
-              description: Valore dello stato (determinato da Type.stateType)
+#              description: Valore dello stato (determinato da Type.stateType)
+              description: Valore dello stato
             timestamp:
               type: string
               format: date-time
               description: Data/ora dello stato
-            validity:
-              type: object
-              properties:
-                from:
-                  type: string
-                  format: date-time
-                  description: Inizio validità
-                to:
-                  type: string
-                  format: date-time
-                  description: Fine validità
+#            validity:
+#              type: object
+#              properties:
+#                from:
+#                  type: string
+#                  format: date-time
+#                  description: Inizio validità
+#                to:
+#                  type: string
+#                  format: date-time
+#                  description: Fine validità
         payload:
           type: object
           description: Attributi personalizzati in base al tipo di entità
@@ -643,10 +691,12 @@ components:
         createdDate:
           type: string
           format: date-time
+          readOnly: true
           description: Data e ora di creazione dell'entità (timestamp ISO 8601)
         updatedDate:
           type: string
           format: date-time
+          readOnly: true
           description: Data e ora dell'ultima modifica all'entità, escluse le modifiche di stato (timestamp ISO 8601)
 
     Source:
@@ -673,6 +723,7 @@ components:
         internal:
           type: boolean
           description: Indica se la fonte dati è nativa della piattaforma o meno
+          readOnly: true
           default: false
         organization:
           type: string