@chill-sharp/ui-core 1.1.12 → 1.1.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +103 -103
- package/fesm2022/chill-sharp-ui-core.mjs +2446 -2446
- package/fesm2022/chill-sharp-ui-core.mjs.map +1 -1
- package/lib/lib/chill-form.component.d.ts +1 -1
- package/package.json +3 -3
- package/service-worker/chill-sharp-service-worker.js +166 -166
- package/styles/core-theme.scss +1235 -1235
- package/.agents/skills/chillsharp-current-user-preferences/SKILL.md +0 -70
- package/.agents/skills/chillsharp-ui-template/SKILL.md +0 -18
- package/doc/AIAssistedDevelopment/README.md +0 -185
- package/doc/AttachmentModel/README.md +0 -173
- package/doc/AuthenticationModel/README.md +0 -213
- package/doc/AuthenticationModel/how-to-integreate-auth-minimal-api.md +0 -293
- package/doc/ChillSharpClient.md +0 -464
- package/doc/ClientGeneration/README.md +0 -172
- package/doc/ComplianceGuide/README.md +0 -178
- package/doc/Configuration/README.md +0 -94
- package/doc/CurrentUserPreferences.md +0 -114
- package/doc/DateTimePolicy/README.md +0 -154
- package/doc/DateTimeSerialization.md +0 -423
- package/doc/Endpoints.md +0 -260
- package/doc/HowTo/01-simple-blog-sqlite.md +0 -153
- package/doc/HowTo/02-blog-schema-labels.md +0 -140
- package/doc/HowTo/03-authentication.md +0 -218
- package/doc/HowTo/04-blog-posts-one-to-many.md +0 -194
- package/doc/HowTo/05-docker-env-variables.md +0 -274
- package/doc/HowTo/06-chunk-transactions-autocomplete.md +0 -196
- package/doc/Mcp/ChatGPT.md +0 -291
- package/doc/Mcp/README.md +0 -799
- package/doc/MenuGuide/README.md +0 -49
- package/doc/ModelPreparation.md +0 -255
- package/doc/PermissionModel/README.md +0 -277
- package/doc/README.md +0 -228
- package/doc/ReferenceExistence.md +0 -130
- package/doc/RegisterContext.md +0 -217
- package/doc/UiCore/CRUD.md +0 -170
- package/doc/UiCore/README.md +0 -13
- package/doc/ValidationModel/README.md +0 -117
- package/doc/it/AIAssistedDevelopment/README.md +0 -185
- package/doc/it/AttachmentModel/README.md +0 -173
- package/doc/it/AuthenticationModel/README.md +0 -171
- package/doc/it/AuthenticationModel/how-to-integreate-auth-minimal-api.md +0 -292
- package/doc/it/ChillSharpClient.md +0 -464
- package/doc/it/ClientGeneration/README.md +0 -152
- package/doc/it/ComplianceGuide/README.md +0 -178
- package/doc/it/Configuration/README.md +0 -94
- package/doc/it/CurrentUserPreferences.md +0 -114
- package/doc/it/DateTimePolicy/README.md +0 -154
- package/doc/it/DateTimeSerialization.md +0 -423
- package/doc/it/Endpoints.md +0 -260
- package/doc/it/HowTo/01-simple-blog-sqlite.md +0 -152
- package/doc/it/HowTo/02-blog-schema-labels.md +0 -139
- package/doc/it/HowTo/03-authentication.md +0 -221
- package/doc/it/HowTo/04-blog-posts-one-to-many.md +0 -193
- package/doc/it/HowTo/05-docker-env-variables.md +0 -268
- package/doc/it/HowTo/06-chunk-transactions-autocomplete.md +0 -196
- package/doc/it/Mcp/ChatGPT.md +0 -291
- package/doc/it/Mcp/README.md +0 -799
- package/doc/it/MenuGuide/README.md +0 -49
- package/doc/it/ModelPreparation.md +0 -254
- package/doc/it/PermissionModel/README.md +0 -190
- package/doc/it/README.md +0 -172
- package/doc/it/ReferenceExistence.md +0 -130
- package/doc/it/RegisterContext.md +0 -218
- package/doc/it/UiCore/CRUD.md +0 -170
- package/doc/it/UiCore/README.md +0 -13
- package/doc/it/ValidationModel/README.md +0 -117
- package/template-customization/upgrade.ps1.template +0 -342
- package/template-customization/upgrade.sh.template +0 -271
|
@@ -1,423 +0,0 @@
|
|
|
1
|
-
# Serializzazione di data e ora ChillSharp
|
|
2
|
-
|
|
3
|
-
Versione originale in inglese: [English](../DateTimeSerialization.md)
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
Questo documento spiega come ChillSharp serializza e analizza i valori `DateTimeOffset`, `DateTime`, `DateOnly` e `TimeOnly` nei payload DTO.
|
|
7
|
-
|
|
8
|
-
Confronta inoltre il comportamento di ChillSharp con il comportamento predefinito ASP.NET Core `System.Text.Json` in modo da poter vedere rapidamente qual è il comportamento .NET standard e qual è il comportamento specifico di ChillSharp.
|
|
9
|
-
|
|
10
|
-
## Perché è importante
|
|
11
|
-
|
|
12
|
-
ChillSharp sposta i dati attraverso i contenitori delle proprietà DTO anziché tramite parametri del controller fortemente tipizzati. Ciò significa che i valori di data e ora vengono convertiti esplicitamente all'interno del mappatore DTO.
|
|
13
|
-
|
|
14
|
-
Per la maggior parte delle applicazioni le domande importanti sono:
|
|
15
|
-
|
|
16
|
-
- quale formato di stringa lascia il server
|
|
17
|
-
- quale formato di stringa il server accetta in input
|
|
18
|
-
- se gli offset e i fusi orari vengono preservati, normalizzati o ignorati
|
|
19
|
-
|
|
20
|
-
ChillSharp ora segue il comportamento .NET standard per `DateOnly` e `TimeOnly`, accettando comunque stringhe data-ora ISO 8601 complete durante la rilettura in tali tipi CLR.
|
|
21
|
-
|
|
22
|
-
## Tabella di confronto rapido
|
|
23
|
-
|
|
24
|
-
| Tipo CLR | ASP.NET Core predefinito/`System.Text.Json` | Uscita ChillSharp |
|
|
25
|
-
| --- | --- | --- |
|
|
26
|
-
| | Data-ora ISO 8601 con offset | Data-ora ISO 8601 con offset |
|
|
27
|
-
| | Data-ora ISO 8601, basato su `DateTime.Kind` | Data e ora ISO 8601 convertite nel fuso orario del sistema ChillSharp |
|
|
28
|
-
| | | |
|
|
29
|
-
| | | |
|
|
30
|
-
|
|
31
|
-
## Fuso orario del sistema ChillSharp
|
|
32
|
-
|
|
33
|
-
ChillSharp utilizza un fuso orario di sistema configurabile solo per `DateTime` e alcuni casi di normalizzazione `DateTimeOffset`.
|
|
34
|
-
|
|
35
|
-
Variabile d'ambiente:
|
|
36
|
-
|
|
37
|
-
```text
|
|
38
|
-
CHILLSHARP_SYSTEM_TIMEZONE
|
|
39
|
-
```
|
|
40
|
-
|
|
41
|
-
Predefinito:
|
|
42
|
-
|
|
43
|
-
```text
|
|
44
|
-
Europe/Rome
|
|
45
|
-
```
|
|
46
|
-
|
|
47
|
-
Valore atteso:
|
|
48
|
-
|
|
49
|
-
- un ID fuso orario IANA come `Europe/Rome`
|
|
50
|
-
- un altro esempio è `America/New_York`
|
|
51
|
-
|
|
52
|
-
Questa impostazione **non** modifica il formato di output di `DateOnly` o `TimeOnly`.
|
|
53
|
-
|
|
54
|
-
## Serializzazione in uscita
|
|
55
|
-
|
|
56
|
-
La serializzazione in uscita avviene quando ChillSharp legge i valori CLR di entità/query e li scrive in DTO `Properties`.
|
|
57
|
-
|
|
58
|
-
### `DateTimeOffset`
|
|
59
|
-
|
|
60
|
-
ChillSharp scrive `DateTimeOffset` esattamente come data-ora ISO 8601 con offset.
|
|
61
|
-
|
|
62
|
-
Esempio di valore CLR:
|
|
63
|
-
|
|
64
|
-
```csharp
|
|
65
|
-
new DateTimeOffset(2026, 4, 11, 14, 30, 0, TimeSpan.FromHours(2))
|
|
66
|
-
```
|
|
67
|
-
|
|
68
|
-
Serializzato da ChillSharp:
|
|
69
|
-
|
|
70
|
-
```json
|
|
71
|
-
"2026-04-11T14:30:00.0000000+02:00"
|
|
72
|
-
```
|
|
73
|
-
|
|
74
|
-
Questo è effettivamente allineato con la normale serializzazione JSON ASP.NET Core.
|
|
75
|
-
|
|
76
|
-
### `DateTime`
|
|
77
|
-
|
|
78
|
-
ChillSharp scrive `DateTime` come data/ora ISO 8601 nel fuso orario del sistema ChillSharp configurato.
|
|
79
|
-
|
|
80
|
-
Se il valore di origine è UTC, ChillSharp lo converte nel fuso orario del sistema configurato prima della scrittura.
|
|
81
|
-
|
|
82
|
-
Esempio con `CHILLSHARP_SYSTEM_TIMEZONE=Europe/Rome`:
|
|
83
|
-
|
|
84
|
-
```csharp
|
|
85
|
-
new DateTime(2026, 4, 11, 12, 30, 0, DateTimeKind.Utc)
|
|
86
|
-
```
|
|
87
|
-
|
|
88
|
-
Serializzato da ChillSharp:
|
|
89
|
-
|
|
90
|
-
```json
|
|
91
|
-
"2026-04-11T14:30:00.0000000+02:00"
|
|
92
|
-
```
|
|
93
|
-
|
|
94
|
-
Un altro esempio con un `DateTime` non specificato:
|
|
95
|
-
|
|
96
|
-
```csharp
|
|
97
|
-
new DateTime(2026, 4, 11, 14, 30, 0, DateTimeKind.Unspecified)
|
|
98
|
-
```
|
|
99
|
-
|
|
100
|
-
Serializzato da ChillSharp:
|
|
101
|
-
|
|
102
|
-
```json
|
|
103
|
-
"2026-04-11T14:30:00.0000000+02:00"
|
|
104
|
-
```
|
|
105
|
-
|
|
106
|
-
La differenza rispetto al semplice ASP.NET Core è che ChillSharp applica in modo coerente un fuso orario di sistema configurato durante la scrittura di `DateTime`.
|
|
107
|
-
|
|
108
|
-
### `DateOnly`
|
|
109
|
-
|
|
110
|
-
ChillSharp ora mantiene il comportamento .NET standard per `DateOnly`.
|
|
111
|
-
|
|
112
|
-
Esempio di valore CLR:
|
|
113
|
-
|
|
114
|
-
```csharp
|
|
115
|
-
new DateOnly(2026, 4, 11)
|
|
116
|
-
```
|
|
117
|
-
|
|
118
|
-
Serializzato da ChillSharp:
|
|
119
|
-
|
|
120
|
-
```json
|
|
121
|
-
"2026-04-11"
|
|
122
|
-
```
|
|
123
|
-
|
|
124
|
-
Questo è intenzionalmente semplice. Non sono presenti offset, componenti temporali e conversioni del fuso orario sull'output.
|
|
125
|
-
|
|
126
|
-
### `TimeOnly`
|
|
127
|
-
|
|
128
|
-
ChillSharp ora mantiene il comportamento .NET standard per `TimeOnly`.
|
|
129
|
-
|
|
130
|
-
Esempio di valore CLR:
|
|
131
|
-
|
|
132
|
-
```csharp
|
|
133
|
-
new TimeOnly(14, 30, 15, 123)
|
|
134
|
-
```
|
|
135
|
-
|
|
136
|
-
Serializzato da ChillSharp:
|
|
137
|
-
|
|
138
|
-
```json
|
|
139
|
-
"14:30:15.1230000"
|
|
140
|
-
```
|
|
141
|
-
|
|
142
|
-
Non è presente alcuna conversione di data e fuso orario sull'output.
|
|
143
|
-
|
|
144
|
-
## Analisi in entrata
|
|
145
|
-
|
|
146
|
-
L'analisi in entrata avviene quando ChillSharp legge DTO `Properties` e li applica a oggetti CLR entità/query.
|
|
147
|
-
|
|
148
|
-
Questo è il lato più permissivo del mappatore.
|
|
149
|
-
|
|
150
|
-
### `DateTimeOffset` regole di input
|
|
151
|
-
|
|
152
|
-
Se il JSON in entrata contiene:
|
|
153
|
-
|
|
154
|
-
-
|
|
155
|
-
- un offset UTC esplicito
|
|
156
|
-
|
|
157
|
-
e il target CLR è `DateTimeOffset`, ChillSharp si comporta in questo modo:
|
|
158
|
-
|
|
159
|
-
- se il valore è UTC (`Z` o `+00:00`), converte il valore nel fuso orario del sistema ChillSharp configurato
|
|
160
|
-
- Se il valore ha un altro offset esplicito, mantiene l'offset così com'è
|
|
161
|
-
|
|
162
|
-
Ingresso di esempio:
|
|
163
|
-
|
|
164
|
-
```json
|
|
165
|
-
"2026-04-11T12:30:00Z"
|
|
166
|
-
```
|
|
167
|
-
|
|
168
|
-
Memorizzato in una proprietà `DateTimeOffset` con fuso orario del sistema `Europe/Rome`:
|
|
169
|
-
|
|
170
|
-
```csharp
|
|
171
|
-
2026-04-11 14:30:00 +02:00
|
|
172
|
-
```
|
|
173
|
-
|
|
174
|
-
Ingresso di esempio:
|
|
175
|
-
|
|
176
|
-
```json
|
|
177
|
-
"2026-04-11T12:30:00+01:00"
|
|
178
|
-
```
|
|
179
|
-
|
|
180
|
-
Memorizzato in una proprietà `DateTimeOffset`:
|
|
181
|
-
|
|
182
|
-
```csharp
|
|
183
|
-
2026-04-11 12:30:00 +01:00
|
|
184
|
-
```
|
|
185
|
-
|
|
186
|
-
### `DateTime` regole di input
|
|
187
|
-
|
|
188
|
-
Se la destinazione CLR è `DateTime`:
|
|
189
|
-
|
|
190
|
-
- L'input UTC viene convertito nel fuso orario del sistema ChillSharp configurato
|
|
191
|
-
- Anche l'input con un offset esplicito viene convertito nel fuso orario del sistema ChillSharp configurato
|
|
192
|
-
- l'input senza offset viene analizzato come un normale valore data-ora
|
|
193
|
-
|
|
194
|
-
Ingresso di esempio:
|
|
195
|
-
|
|
196
|
-
```json
|
|
197
|
-
"2026-04-11T12:30:00Z"
|
|
198
|
-
```
|
|
199
|
-
|
|
200
|
-
Memorizzato in una proprietà `DateTime` con fuso orario del sistema `Europe/Rome`:
|
|
201
|
-
|
|
202
|
-
```csharp
|
|
203
|
-
2026-04-11 14:30:00
|
|
204
|
-
```
|
|
205
|
-
|
|
206
|
-
Ingresso di esempio:
|
|
207
|
-
|
|
208
|
-
```json
|
|
209
|
-
"2026-04-11T12:30:00+01:00"
|
|
210
|
-
```
|
|
211
|
-
|
|
212
|
-
Memorizzato in una proprietà `DateTime` con fuso orario del sistema `Europe/Rome`:
|
|
213
|
-
|
|
214
|
-
```csharp
|
|
215
|
-
2026-04-11 13:30:00
|
|
216
|
-
```
|
|
217
|
-
|
|
218
|
-
### `DateOnly` regole di input
|
|
219
|
-
|
|
220
|
-
Se la destinazione CLR è `DateOnly`, ChillSharp estrae solo l'anno, il mese e il giorno.
|
|
221
|
-
|
|
222
|
-
Ciò significa che accetta entrambi:
|
|
223
|
-
|
|
224
|
-
- una semplice stringa di data
|
|
225
|
-
- una stringa data-ora ISO 8601 completa
|
|
226
|
-
|
|
227
|
-
e ignora le informazioni su ora, offset e fuso orario.
|
|
228
|
-
|
|
229
|
-
Ingresso di esempio:
|
|
230
|
-
|
|
231
|
-
```json
|
|
232
|
-
"2026-04-11"
|
|
233
|
-
```
|
|
234
|
-
|
|
235
|
-
Memorizzato come:
|
|
236
|
-
|
|
237
|
-
```csharp
|
|
238
|
-
new DateOnly(2026, 4, 11)
|
|
239
|
-
```
|
|
240
|
-
|
|
241
|
-
Ingresso di esempio:
|
|
242
|
-
|
|
243
|
-
```json
|
|
244
|
-
"2026-04-11T23:59:58.321-05:00"
|
|
245
|
-
```
|
|
246
|
-
|
|
247
|
-
Memorizzato come:
|
|
248
|
-
|
|
249
|
-
```csharp
|
|
250
|
-
new DateOnly(2026, 4, 11)
|
|
251
|
-
```
|
|
252
|
-
|
|
253
|
-
Questa regola è intenzionale. `DateOnly` rappresenta solo una data di calendario, quindi ChillSharp scarta i dettagli di ora e zona durante l'assegnazione.
|
|
254
|
-
|
|
255
|
-
### `TimeOnly` regole di input
|
|
256
|
-
|
|
257
|
-
Se la destinazione CLR è `TimeOnly`, ChillSharp estrae solo la parte temporale.
|
|
258
|
-
|
|
259
|
-
Ciò significa che accetta entrambi:
|
|
260
|
-
|
|
261
|
-
- una semplice stringa temporale
|
|
262
|
-
- una stringa data-ora ISO 8601 completa
|
|
263
|
-
|
|
264
|
-
e ignora le informazioni su data, offset e fuso orario.
|
|
265
|
-
|
|
266
|
-
Ingresso di esempio:
|
|
267
|
-
|
|
268
|
-
```json
|
|
269
|
-
"14:30:15.1230000"
|
|
270
|
-
```
|
|
271
|
-
|
|
272
|
-
Memorizzato come:
|
|
273
|
-
|
|
274
|
-
```csharp
|
|
275
|
-
new TimeOnly(14, 30, 15, 123)
|
|
276
|
-
```
|
|
277
|
-
|
|
278
|
-
Ingresso di esempio:
|
|
279
|
-
|
|
280
|
-
```json
|
|
281
|
-
"2026-04-11T23:59:58.321-05:00"
|
|
282
|
-
```
|
|
283
|
-
|
|
284
|
-
Memorizzato come:
|
|
285
|
-
|
|
286
|
-
```csharp
|
|
287
|
-
new TimeOnly(23, 59, 58, 321)
|
|
288
|
-
```
|
|
289
|
-
|
|
290
|
-
Ciò è utile quando i client inviano un timestamp completo ma il campo di destinazione rappresenta concettualmente solo l'ora dell'orologio locale.
|
|
291
|
-
|
|
292
|
-
## Esempi affiancati
|
|
293
|
-
|
|
294
|
-
Assumere:
|
|
295
|
-
|
|
296
|
-
```text
|
|
297
|
-
CHILLSHARP_SYSTEM_TIMEZONE=Europe/Rome
|
|
298
|
-
```
|
|
299
|
-
|
|
300
|
-
### Esempio 1: `DateTimeOffset`
|
|
301
|
-
|
|
302
|
-
Valore CLR:
|
|
303
|
-
|
|
304
|
-
```csharp
|
|
305
|
-
new DateTimeOffset(2026, 4, 11, 14, 30, 0, TimeSpan.FromHours(2))
|
|
306
|
-
```
|
|
307
|
-
|
|
308
|
-
Output ASP.NET Core predefinito:
|
|
309
|
-
|
|
310
|
-
```json
|
|
311
|
-
"2026-04-11T14:30:00+02:00"
|
|
312
|
-
```
|
|
313
|
-
|
|
314
|
-
Uscita ChillSharp:
|
|
315
|
-
|
|
316
|
-
```json
|
|
317
|
-
"2026-04-11T14:30:00.0000000+02:00"
|
|
318
|
-
```
|
|
319
|
-
|
|
320
|
-
### Esempio 2: `DateTime` in UTC
|
|
321
|
-
|
|
322
|
-
Valore CLR:
|
|
323
|
-
|
|
324
|
-
```csharp
|
|
325
|
-
new DateTime(2026, 4, 11, 12, 30, 0, DateTimeKind.Utc)
|
|
326
|
-
```
|
|
327
|
-
|
|
328
|
-
Output ASP.NET Core predefinito:
|
|
329
|
-
|
|
330
|
-
```json
|
|
331
|
-
"2026-04-11T12:30:00Z"
|
|
332
|
-
```
|
|
333
|
-
|
|
334
|
-
Uscita ChillSharp:
|
|
335
|
-
|
|
336
|
-
```json
|
|
337
|
-
"2026-04-11T14:30:00.0000000+02:00"
|
|
338
|
-
```
|
|
339
|
-
|
|
340
|
-
### Esempio 3: `DateOnly`
|
|
341
|
-
|
|
342
|
-
Valore CLR:
|
|
343
|
-
|
|
344
|
-
```csharp
|
|
345
|
-
new DateOnly(2026, 4, 11)
|
|
346
|
-
```
|
|
347
|
-
|
|
348
|
-
Output ASP.NET Core predefinito:
|
|
349
|
-
|
|
350
|
-
```json
|
|
351
|
-
"2026-04-11"
|
|
352
|
-
```
|
|
353
|
-
|
|
354
|
-
Uscita ChillSharp:
|
|
355
|
-
|
|
356
|
-
```json
|
|
357
|
-
"2026-04-11"
|
|
358
|
-
```
|
|
359
|
-
|
|
360
|
-
### Esempio 4: `TimeOnly`
|
|
361
|
-
|
|
362
|
-
Valore CLR:
|
|
363
|
-
|
|
364
|
-
```csharp
|
|
365
|
-
new TimeOnly(14, 30, 15, 123)
|
|
366
|
-
```
|
|
367
|
-
|
|
368
|
-
Output ASP.NET Core predefinito:
|
|
369
|
-
|
|
370
|
-
```json
|
|
371
|
-
"14:30:15.1230000"
|
|
372
|
-
```
|
|
373
|
-
|
|
374
|
-
Uscita ChillSharp:
|
|
375
|
-
|
|
376
|
-
```json
|
|
377
|
-
"14:30:15.1230000"
|
|
378
|
-
```
|
|
379
|
-
|
|
380
|
-
### Esempio 5: timestamp completo inviato a `DateOnly`
|
|
381
|
-
|
|
382
|
-
JSON in entrata:
|
|
383
|
-
|
|
384
|
-
```json
|
|
385
|
-
"2026-04-11T23:59:58.321-05:00"
|
|
386
|
-
```
|
|
387
|
-
|
|
388
|
-
Archiviato da ChillSharp in una proprietà `DateOnly`:
|
|
389
|
-
|
|
390
|
-
```csharp
|
|
391
|
-
new DateOnly(2026, 4, 11)
|
|
392
|
-
```
|
|
393
|
-
|
|
394
|
-
### Esempio 6: timestamp completo inviato a `TimeOnly`
|
|
395
|
-
|
|
396
|
-
JSON in entrata:
|
|
397
|
-
|
|
398
|
-
```json
|
|
399
|
-
"2026-04-11T23:59:58.321-05:00"
|
|
400
|
-
```
|
|
401
|
-
|
|
402
|
-
Archiviato da ChillSharp in una proprietà `TimeOnly`:
|
|
403
|
-
|
|
404
|
-
```csharp
|
|
405
|
-
new TimeOnly(23, 59, 58, 321)
|
|
406
|
-
```
|
|
407
|
-
|
|
408
|
-
## Guida pratica
|
|
409
|
-
|
|
410
|
-
- Utilizzare `DateTimeOffset` quando l'offset stesso è importante e deve sopravvivere ai viaggi di andata e ritorno.
|
|
411
|
-
- Utilizzare `DateTime` quando l'applicazione considera un valore come l'ora locale nel fuso orario del sistema ChillSharp configurato.
|
|
412
|
-
- Utilizza `DateOnly` per compleanni, date contabili, date lavorative, scadenze per giorno di calendario e concetti simili.
|
|
413
|
-
- Utilizzare `TimeOnly` per orari di apertura, orari degli appuntamenti e altri valori che non sono intenzionalmente timestamp completi.
|
|
414
|
-
|
|
415
|
-
## Configurazione correlata
|
|
416
|
-
|
|
417
|
-
Per il riferimento alle variabili d'ambiente, vedere:
|
|
418
|
-
|
|
419
|
-
- [Configurazione/README.md](./Configuration/README.md)
|
|
420
|
-
|
|
421
|
-
Per esempi di Docker e ambiente runtime, vedere:
|
|
422
|
-
|
|
423
|
-
- [HowTo/05-docker-env-variables.md](./HowTo/05-docker-env-variables.md)
|
package/doc/it/Endpoints.md
DELETED
|
@@ -1,260 +0,0 @@
|
|
|
1
|
-
# Endpoint ChillSharp
|
|
2
|
-
|
|
3
|
-
Versione originale in inglese: [English](../Endpoints.md)
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
Questo documento elenca gli endpoint HTTP, SignalR e MCP esposti dai moduli API ChillSharp integrati.
|
|
7
|
-
|
|
8
|
-
## Percorso base
|
|
9
|
-
|
|
10
|
-
Gli endpoint ChillSharp sono montati in un percorso base API configurabile.
|
|
11
|
-
|
|
12
|
-
Predefinito:
|
|
13
|
-
|
|
14
|
-
```text
|
|
15
|
-
/api
|
|
16
|
-
```
|
|
17
|
-
|
|
18
|
-
Configurazione:
|
|
19
|
-
|
|
20
|
-
```text
|
|
21
|
-
CHILLSHARP_API_BASE_PATH=/api
|
|
22
|
-
```
|
|
23
|
-
|
|
24
|
-
o nel codice:
|
|
25
|
-
|
|
26
|
-
```csharp
|
|
27
|
-
builder.Services.AddChillApi<MyDbContext>(options =>
|
|
28
|
-
{
|
|
29
|
-
options.ApiBasePath = "/api";
|
|
30
|
-
});
|
|
31
|
-
|
|
32
|
-
app.MapChillApi();
|
|
33
|
-
```
|
|
34
|
-
|
|
35
|
-
Gli esempi seguenti utilizzano il percorso di base predefinito `/api`. Se imposti `CHILLSHARP_API_BASE_PATH=/backend`, sostituisci `/api` con `/backend`.
|
|
36
|
-
|
|
37
|
-
## Radice e diagnostica
|
|
38
|
-
|
|
39
|
-
Questi endpoint sono registrati da `MapChillApi()`.
|
|
40
|
-
|
|
41
|
-
| Metodo | Percorso | Descrizione |
|
|
42
|
-
| --- | --- | --- |
|
|
43
|
-
| OTTIENI | | Risposta sanitaria di base di ChillSharp, abbinata anche quando i chiamanti richiedono `/api/`. |
|
|
44
|
-
| OTTIENI | | Risposta sanitaria di base di ChillSharp. |
|
|
45
|
-
| OTTIENI | | Restituisce la licenza ChillSharp e i metadati del progetto. |
|
|
46
|
-
|
|
47
|
-
## API DTO principale
|
|
48
|
-
|
|
49
|
-
Questi endpoint sono abilitati da `AddChillApi<TContext>()` e sono disponibili quando viene registrata l'API Chill di base.
|
|
50
|
-
|
|
51
|
-
Itinerario base:
|
|
52
|
-
|
|
53
|
-
```text
|
|
54
|
-
/api/chill
|
|
55
|
-
```
|
|
56
|
-
|
|
57
|
-
| Metodo | Percorso | Descrizione |
|
|
58
|
-
| --- | --- | --- |
|
|
59
|
-
| POST | | Esegue un `ChillDtoQuery` dinamico. |
|
|
60
|
-
| POST | | Esegue una ricerca full-text rispetto al tipo di entità richiesto. |
|
|
61
|
-
| POST | | Trova un'entità per tipo e GUID. |
|
|
62
|
-
| POST | | Crea un'entità da `ChillDtoEntity`. |
|
|
63
|
-
| POST | | Aggiorna un'entità da `ChillDtoEntity`. |
|
|
64
|
-
| POST | | Elimina un'entità identificata da `ChillDtoEntity`. |
|
|
65
|
-
| POST | | Esegue la logica di completamento automatico per un'entità o una query DTO. |
|
|
66
|
-
| POST | | Esegue la convalida per un'entità o una query DTO. |
|
|
67
|
-
| POST | | Esegue un elenco di operazioni di raffreddamento in una richiesta. |
|
|
68
|
-
|
|
69
|
-
Quando i servizi ACL dell'entità vengono registrati e il chiamante viene autenticato, questi endpoint possono anche applicare autorizzazioni a livello di entità.
|
|
70
|
-
|
|
71
|
-
## Notifiche SignalR
|
|
72
|
-
|
|
73
|
-
L'hub di notifica è registrato da `MapChillApi()`.
|
|
74
|
-
|
|
75
|
-
| Protocollo | Percorso | Descrizione |
|
|
76
|
-
| --- | --- | --- |
|
|
77
|
-
| SegnaleR | | Hub per le notifiche di modifica dell'entità. |
|
|
78
|
-
|
|
79
|
-
Metodi dell'hub:
|
|
80
|
-
|
|
81
|
-
| Metodo | Parametri | Descrizione |
|
|
82
|
-
| --- | --- | --- |
|
|
83
|
-
| | `chillType`, opzionale `guid` | Sottoscrive la connessione a tutte le modifiche per un tipo o un'entità. |
|
|
84
|
-
| | `chillType`, opzionale `guid` | Rimuove un abbonamento precedente. |
|
|
85
|
-
|
|
86
|
-
Metodo da server a client:
|
|
87
|
-
|
|
88
|
-
| Metodo | Descrizione |
|
|
89
|
-
| --- | --- |
|
|
90
|
-
| | Inviato quando le entità sottoscritte cambiano. |
|
|
91
|
-
|
|
92
|
-
## API di autenticazione
|
|
93
|
-
|
|
94
|
-
Abilitato quando `ChillApiOptions.EnableAuthApi` è `true` e il contesto implementa `IChillAuthDbContext`.
|
|
95
|
-
|
|
96
|
-
Itinerario base:
|
|
97
|
-
|
|
98
|
-
```text
|
|
99
|
-
/api/chill-auth
|
|
100
|
-
```
|
|
101
|
-
|
|
102
|
-
### Endpoint dell'account
|
|
103
|
-
|
|
104
|
-
| Metodo | Percorso | Aut. | Descrizione |
|
|
105
|
-
| --- | --- | --- | --- |
|
|
106
|
-
| POST | | Anonimo | Registra un nuovo account di identità e restituisce i token. |
|
|
107
|
-
| POST | | Anonimo | Autentica e restituisce token. |
|
|
108
|
-
| POST | | Anonimo | Scambia un token di aggiornamento con nuovi token. |
|
|
109
|
-
| POST | | Obbligatorio | Revoca la sessione corrente. |
|
|
110
|
-
| POST | | Obbligatorio | Modifica la password dell'utente corrente. |
|
|
111
|
-
| POST | | Anonimo | Richiede o genera un token di reimpostazione della password. |
|
|
112
|
-
| POST | | Anonimo | Reimposta una password con un token di reimpostazione. |
|
|
113
|
-
|
|
114
|
-
### Utente corrente e metadati
|
|
115
|
-
|
|
116
|
-
| Metodo | Percorso | Aut. | Descrizione |
|
|
117
|
-
| --- | --- | --- | --- |
|
|
118
|
-
| OTTIENI | | Facoltativo | Restituisce le autorizzazioni dirette, di ruolo e derivate dal ruolo per l'utente corrente. |
|
|
119
|
-
| OTTIENI | | Gestione | Restituisce un elenco utenti semplificato per le interfacce utente di gestione. |
|
|
120
|
-
| OTTIENI | | Gestione | Restituisce un elenco di ruoli semplificato per le interfacce utente di gestione. |
|
|
121
|
-
| OTTIENI | | Gestione | Restituisce i moduli logici disponibili. |
|
|
122
|
-
| OTTIENI | | Gestione | Restituisce le entità per un modulo. |
|
|
123
|
-
| OTTIENI | | Gestione | Restituisce le query per un modulo. |
|
|
124
|
-
| OTTIENI | | Gestione | Restituisce le proprietà per un tipo Chill. |
|
|
125
|
-
|
|
126
|
-
### Utenti
|
|
127
|
-
|
|
128
|
-
| Metodo | Percorso | Aut. | Descrizione |
|
|
129
|
-
| --- | --- | --- | --- |
|
|
130
|
-
| OTTIENI | | Gestione | Elenca gli utenti autorizzati. |
|
|
131
|
-
| OTTIENI | | Gestione | Ottiene un utente con autorizzazione. |
|
|
132
|
-
| POST | | Gestione | Crea un utente di autorizzazione. |
|
|
133
|
-
| METTERE | | Gestione | Aggiorna un utente di autorizzazione. |
|
|
134
|
-
| ELIMINA | | Gestione | Elimina un utente autorizzato. |
|
|
135
|
-
| OTTIENI | | Gestione | Elenca i ruoli assegnati a un utente. |
|
|
136
|
-
| METTERE | | Gestione | Assegna un ruolo a un utente. |
|
|
137
|
-
| ELIMINA | | Gestione | Rimuove un ruolo da un utente. |
|
|
138
|
-
|
|
139
|
-
### Ruoli
|
|
140
|
-
|
|
141
|
-
| Metodo | Percorso | Aut. | Descrizione |
|
|
142
|
-
| --- | --- | --- | --- |
|
|
143
|
-
| OTTIENI | | Gestione | Elenca i ruoli. |
|
|
144
|
-
| OTTIENI | | Gestione | Ottiene un ruolo. |
|
|
145
|
-
| POST | | Gestione | Crea un ruolo. |
|
|
146
|
-
| METTERE | | Gestione | Aggiorna un ruolo. |
|
|
147
|
-
| ELIMINA | | Gestione | Elimina un ruolo. |
|
|
148
|
-
|
|
149
|
-
### Regole di autorizzazione
|
|
150
|
-
|
|
151
|
-
| Metodo | Percorso | Aut. | Descrizione |
|
|
152
|
-
| --- | --- | --- | --- |
|
|
153
|
-
| OTTIENI | | Gestione | Elenca le regole di autorizzazione, facoltativamente filtrate da `userGuid` o `roleGuid`. |
|
|
154
|
-
| OTTIENI | | Gestione | Ottiene una regola di autorizzazione. |
|
|
155
|
-
| POST | | Gestione | Crea una regola di autorizzazione. |
|
|
156
|
-
| METTERE | | Gestione | Aggiorna una regola di autorizzazione. |
|
|
157
|
-
| ELIMINA | | Gestione | Elimina una regola di autorizzazione. |
|
|
158
|
-
|
|
159
|
-
`Management` significa che l'endpoint è protetto da `ChillAuthManagementAccessFilter`.
|
|
160
|
-
|
|
161
|
-
## API dello schema
|
|
162
|
-
|
|
163
|
-
Abilitato quando `ChillApiOptions.EnableSchemaApi` è `true` e il contesto implementa `IChillSchemaDbContext`.
|
|
164
|
-
|
|
165
|
-
Itinerario base:
|
|
166
|
-
|
|
167
|
-
```text
|
|
168
|
-
/api/chill-schema
|
|
169
|
-
```
|
|
170
|
-
|
|
171
|
-
| Metodo | Percorso | Aut. | Descrizione |
|
|
172
|
-
| --- | --- | --- | --- |
|
|
173
|
-
| OTTIENI | | Dipende dalla protezione API globale | Ottiene uno schema. |
|
|
174
|
-
| OTTIENI | | Dipende dalla protezione API globale | Elenca i riepiloghi delle entità e degli schemi di query. |
|
|
175
|
-
| POST | | Gestione dello schema | Crea o aggiorna uno schema. |
|
|
176
|
-
| OTTIENI | | Gestione dello schema | Ottiene le opzioni dello schema per un tipo di entità. |
|
|
177
|
-
| POST | | Gestione dello schema | Crea o aggiorna le opzioni dell'entità. |
|
|
178
|
-
| OTTIENI | | Dipende dalla protezione API globale | Restituisce le voci del menu, filtrate in base ai metadati di autenticazione quando disponibili. |
|
|
179
|
-
| POST | | Gestione dello schema | Crea o aggiorna una voce di menu. |
|
|
180
|
-
| ELIMINA | | Gestione dello schema | Elimina una voce di menu. |
|
|
181
|
-
|
|
182
|
-
`Schema management` significa che l'endpoint è protetto da `ChillSchemaManagementAccessFilter`.
|
|
183
|
-
|
|
184
|
-
## API I18n
|
|
185
|
-
|
|
186
|
-
Abilitato quando `ChillApiOptions.EnableI18nApi` è `true` e il contesto implementa `IChillI18nDbContext`.
|
|
187
|
-
|
|
188
|
-
Itinerario base:
|
|
189
|
-
|
|
190
|
-
```text
|
|
191
|
-
/api/chill-i18n
|
|
192
|
-
```
|
|
193
|
-
|
|
194
|
-
| Metodo | Percorso | Aut. | Descrizione |
|
|
195
|
-
| --- | --- | --- | --- |
|
|
196
|
-
| POST | | Anonimo | Ottiene un testo localizzato. |
|
|
197
|
-
| POST | | Anonimo | Ottiene più testi localizzati. |
|
|
198
|
-
| METTERE | | Dipende dalla protezione API globale | Crea o aggiorna il testo localizzato. |
|
|
199
|
-
|
|
200
|
-
## API per gli allegati
|
|
201
|
-
|
|
202
|
-
Abilitato quando `ChillApiOptions.EnableAttachmentApi` è `true` e il contesto implementa `IChillAttachmentDbContext`.
|
|
203
|
-
|
|
204
|
-
Itinerario base:
|
|
205
|
-
|
|
206
|
-
```text
|
|
207
|
-
/api/chill-attachment
|
|
208
|
-
```
|
|
209
|
-
|
|
210
|
-
| Metodo | Percorso | Aut. | Descrizione |
|
|
211
|
-
| --- | --- | --- | --- |
|
|
212
|
-
| OTTIENI | | Anonimo per i file pubblici; autenticato per file privati | Scarica un allegato archiviato. |
|
|
213
|
-
| POST | | Dipende dalla protezione API globale | Carica uno o più file come dati del modulo multiparte. |
|
|
214
|
-
|
|
215
|
-
Carica i campi del modulo:
|
|
216
|
-
|
|
217
|
-
| Campo | Obbligatorio | Descrizione |
|
|
218
|
-
| --- | --- | --- |
|
|
219
|
-
| | Sì | Tipo di raffreddamento dell'entità a cui appartiene l'allegato. |
|
|
220
|
-
| | Sì | GUID dell'entità a cui appartiene l'allegato. |
|
|
221
|
-
| | Sì | Uno o più file caricati. |
|
|
222
|
-
| | No | Visualizza il titolo. Il valore predefinito è il nome file senza estensione. |
|
|
223
|
-
| | No | Descrizione dell'allegato facoltativa. |
|
|
224
|
-
| | No | Se i chiamanti anonimi possono scaricare il file. |
|
|
225
|
-
|
|
226
|
-
## API MCP
|
|
227
|
-
|
|
228
|
-
Abilitato quando `ChillApiOptions.EnableMcpApi` è `true`, `ChillMcpOptions.Enabled` è `true` e il contesto implementa `IChillSchemaDbContext`.
|
|
229
|
-
|
|
230
|
-
Percorso predefinito:
|
|
231
|
-
|
|
232
|
-
```text
|
|
233
|
-
/api/chill-mcp
|
|
234
|
-
```
|
|
235
|
-
|
|
236
|
-
L'endpoint MCP viene registrato tramite `MapMcp(...)` dal Model Context Protocol ASP.NET Core SDK. Il suo comportamento HTTP segue il contratto di trasporto dell'SDK MCP.
|
|
237
|
-
|
|
238
|
-
Puoi sovrascrivere direttamente il percorso MCP:
|
|
239
|
-
|
|
240
|
-
```csharp
|
|
241
|
-
builder.Services.AddChillMcpApi<MyDbContext>(options =>
|
|
242
|
-
{
|
|
243
|
-
options.RoutePattern = "/api/chill-mcp";
|
|
244
|
-
});
|
|
245
|
-
```
|
|
246
|
-
|
|
247
|
-
Se `RoutePattern` è relativo, ad esempio `chill-mcp`, ChillSharp lo inserisce nel percorso base API configurato.
|
|
248
|
-
|
|
249
|
-
## Regole di protezione
|
|
250
|
-
|
|
251
|
-
`ChillApiOptions.ProtectedApi` applica l'autorizzazione agli endpoint del controller mappato e all'hub SignalR. Alcuni endpoint consentono esplicitamente l'accesso anonimo, ad esempio login/registrazione di autenticazione, endpoint di lettura i18n e download di allegati pubblici.
|
|
252
|
-
|
|
253
|
-
Gli endpoint di gestione specifici del modulo aggiungono filtri più rigidi:
|
|
254
|
-
|
|
255
|
-
| Filtra | Utilizzato da |
|
|
256
|
-
| --- | --- |
|
|
257
|
-
| | Utenti di autenticazione, ruoli, autorizzazioni e metadati di gestione. |
|
|
258
|
-
| | Operazioni di scrittura di schemi e menu. |
|
|
259
|
-
|
|
260
|
-
I controlli ACL dell'entità possono essere applicati anche alle operazioni DTO principali e agli allegati quando è registrato un `IChillEntityAclService`.
|