Condividi tramite


Servizio modelli di schede adattive

Il servizio modelli di Schede adattive è un modello di verifica che consente a chiunque di trovare, contribuire e condividere un set di modelli ben noti.

È utile se vuoi visualizzare alcuni dati, ma non vuoi disturbare la scrittura di una scheda adattiva personalizzata.

Per una panoramica della creazione di modelli di schede adattive, leggi l'argomento specifico.

Importante

Termini e contratto

Questo servizio a livello alfa viene fornito "così come è", con tutti gli errori e non è supportato in alcun modo. Qualsiasi raccolta di dati dal servizio è soggetta all'informativa sulla privacy di Microsoft.

Queste funzionalità sono disponibili in anteprima e sono soggette a modifiche. I commenti e i suggerimenti non solo sono benvenuti, ma sono fondamentali per garantire che le funzionalità necessarie siano disponibili.

In che modo il servizio mi aiuta?

Si supponga di avere solo una parte di dati, ad esempio dati finanziari, dati di Microsoft Graph, dati schema.org o dati personalizzati dall'interno dell'organizzazione.

Ora voglio visualizzare i dati a un utente.

Tradizionalmente significa scrivere codice dell'interfaccia utente personalizzato in tutti gli stack front-end che io distribuisco agli utenti finali.

Ma cosa succede se ci fosse un mondo in cui l'app poteva "apprendere" nuovi modelli di interfaccia utente in base al tipo di dati? Un mondo in cui chiunque può contribuire, migliorare e condividere modelli di interfaccia utente comuni, all'interno dei propri progetti, all'interno di un'organizzazione o per l'intera rete Internet.

Che cos'è il servizio modello di scheda?

Il servizio modello di scheda è un semplice endpoint REST che consente di:

  • Trovare un modello analizzando la struttura dei dati
  • Ottenere un modello in modo da poterlo associare direttamente sul client, senza inviare i dati al server o lasciare il dispositivo
  • Popolare un modello nel server, quando il data binding sul lato client non è appropriato o possibile

Dietro di tutto, è:

  • Repository di modelli open source condiviso supportato da GitHub. (Il repository è attualmente privato, ma verrà reso pubblico non appena si legano alcune estremità sciolte)
  • Tutti i modelli sono file JSON flat nel repository, che apporta modifiche, contributi e condivisione di una parte naturale di un flusso di lavoro per sviluppatori.
  • Il codice per il servizio verrà reso disponibile in modo da poter ospitare ovunque sia più appropriato.

Uso del servizio

Ottenere tutti i modelli

Questo endpoint restituisce un elenco di tutti i modelli noti.

HTTP GET https://templates.adaptivecards.io/list

Estratto di risposta

{
  "graph.microsoft.com": {
    "templates": [
      {
        "file": "Files.json",
        "fullPath": "graph.microsoft.com/Files.json"
      },
      {
        "file": "Profile.json",
        "fullPath": "graph.microsoft.com/Profile.json"
      }
   ]
}

Trovare un modello

Questo endpoint tenta di trovare un modello analizzando la struttura dei dati.

HTTP POST https://templates.adaptivecards.io/find

Esempio

Si supponga di accedere a un endpoint di Microsoft Graph per ottenere i dati dell'organizzazione su di me.

HTTP GET https://graph.microsoft.com/v1.0/me/

Graph Explorer screenshot

L'API ha restituito dati JSON, ma come è possibile visualizzarla agli utenti usando le schede adattive?

Prima di tutto si vuole verificare se esiste un modello per questo tipo di dati, quindi si effettua una richiesta HTTP all'endpoint con i /find dati in POST body.

HTTP POST https://templates.adaptivecards.io/find

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users/$entity",
    "businessPhones": [
        "+1 412 555 0109"
    ],
    "displayName": "Megan Bowen",
    "givenName": "Megan",
    "jobTitle": "Auditor",
    "mail": "MeganB@M365x214355.onmicrosoft.com",
    "mobilePhone": null,
    "officeLocation": "12/1110",
    "preferredLanguage": "en-US",
    "surname": "Bowen",
    "userPrincipalName": "MeganB@M365x214355.onmicrosoft.com",
    "id": "48d31887-5fad-4d73-a9f5-3c356e68a038"
}

Risposta:

[
  {
    "templateUrl": "graph.microsoft.com/Profile.json",
    "confidence": 1
  }
]

Il servizio restituisce un elenco di qualsiasi modello corrispondente, insieme a un confidence valore che indica la chiusura della corrispondenza. È ora possibile usare l'URL del modello per ottenere il modello o popolarlo sul lato server.

Ottenere un modello

Un modello recuperato da questo endpoint può essere popolato con i dati in fase di esecuzione usando gli SDK di creazione di modelli.

HTTP GET https://templates.adaptivecards.io/[TEMPLATE-PATH]

È anche possibile includere "dati di esempio" con il modello, che semplifica la modifica nella finestra di progettazione:

HTTP GET https://templates.adaptivecards.io/[TEMPLATE-PATH]?sampleData=true

Esempio

Si otterrà ora il modello di profilo di Microsoft Graph restituito in /find precedenza.

HTTP GET https://templates.adaptivecards.io/graph.microsoft.com/Profile.json

Estratto di risposta

{
  "type": "AdaptiveCard",
  "version": "1.0",
  "body": [
    {
      "type": "TextBlock",
      "size": "Medium",
      "weight": "Bolder",
      "text": "{name}"
    },
    {
        // ...snip
    }
  ]
}

Usare ora questo modello con gli SDK di creazione modelli per creare una scheda adattiva pronta per il rendering.

Popolare un modello sul lato server

In alcuni casi potrebbe non essere opportuno popolare un modello nel client. Per questi casi d'uso, è possibile che il servizio restituisca una scheda adattiva completamente popolata, pronta per essere passata a qualsiasi renderer di schede adattive.

HTTP POST https://templates.adaptivecards.io/[TEMPLATE-PATH]

Esempio

Popolare il modello di profilo di Microsoft Graph restituito usando /find i dati precedenti.

HTTP POST https://templates.adaptivecards.io/graph.microsoft.com/Profile.json

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users/$entity",
    "businessPhones": [
        "+1 412 555 0109"
    ],
    "displayName": "Megan Bowen",
    "givenName": "Megan",
    "jobTitle": "Auditor",
    "mail": "MeganB@M365x214355.onmicrosoft.com",
    "mobilePhone": null,
    "officeLocation": "12/1110",
    "preferredLanguage": "en-US",
    "surname": "Bowen",
    "userPrincipalName": "MeganB@M365x214355.onmicrosoft.com",
    "id": "48d31887-5fad-4d73-a9f5-3c356e68a038"
}

Estratto di risposta

{
  "type": "AdaptiveCard",
  "version": "1.0",
  "body": [
    {
      "type": "TextBlock",
      "size": "Medium",
      "weight": "Bolder",
      "text": "Megan Bowen"
    },
    {
        // ...snip
    }
  ]
}

Si noti che la risposta ha sostituito il testo del primo TextBlock con "Megan Bowen" anziché "{name}", come nella GET richiesta. Questa AdaptiveCard può ora essere passata a qualsiasi renderer di schede adattive senza passare attraverso la creazione di modelli sul lato client.

Modelli di contributi

I modelli sono ospitati in GitHub nel repository adaptivecards-templates.

La speranza è che usando GitHub come archivio di supporto per i modelli, possiamo "democratizzare" il processo di creazione, miglioramento e condivisione dei modelli. Chiunque può inviare una richiesta pull che include un modello completamente nuovo o apportare miglioramenti a quelli esistenti... tutto all'interno dell'esperienza per sviluppatori di GitHub.

Self-hosting del servizio

Non tutti i tipi di dati sono appropriati per il servizio modello di schede adattive "centrale" ospitato in https://templates.adaptivecards.io.

Si vuole assicurarsi che chiunque possa ospitare il servizio modello all'interno dell'organizzazione, in modo che il codice sorgente sia disponibile in GitHub e possa essere facilmente distribuito nella propria funzione di Azure.

Attività iniziali qui ➡ adaptivecards-templates