SlideShare une entreprise Scribd logo
1  sur  43
Télécharger pour lire hors ligne
Tutti per uno
e Swagger per tutti!
NicolòCarandini
n.carandini@mahiz.it
www.mahiz.it
Nicolò Carandini
n.carandini@mahiz.it
Session Tuning
Web Services e REST API
Cos’è Swagger e a cosa serve
Documentazione delle API
Tools di generazione
Integrazione con Azure Web Services
Q&A
Agenda
Nicolò Carandini
n.carandini@mahiz.it
Che differenza c’è tra HTTP e HTML ?
Che differenza c’è tra Web App e Web Service ?
Chi è Tim Berners-Lee?
Cos’è un servizio RESTful
Session tuning
Nicolò Carandini
n.carandini@mahiz.it
Iniziamo dal World Wide Web
Nicolò Carandini
n.carandini@mahiz.it
Il Web usa HTTP e HTML
Nicolò Carandini
n.carandini@mahiz.it
HTTP (Hypertext Transfer Protocol)
Nicolò Carandini
n.carandini@mahiz.it
Uniform Resource Locator
Nicolò Carandini
n.carandini@mahiz.it
Web App Vs. Web Service
Nicolò Carandini
n.carandini@mahiz.it
Lo conoscete?
Quiz Time
Nicolò Carandini
n.carandini@mahiz.it
 Ha scritto una tesi di dottorato dal titolo:
Architectural Styles and the Design of
Network-based Software Architectures
nella quale descrive una metodologia di
scrittura dei servizi chiamata REST
(Representational State Transfer).
 E’ uno dei principali autori delle specifiche
dell‘HTTP (Hypertext Transfer Protocol)
presso il W3C, dove ha lavorato con Tim
Berners-Lee, meglio noto come
"Father of Web".
Roy Fielding
Nicolò Carandini
n.carandini@mahiz.it
Client–Server
Uniform interface
Stateless
Cacheable
Layered system
REpresentational State Transfer
Nicolò Carandini
n.carandini@mahiz.it
Utilizza i metodi HTTP (Get, Post, Put, Delete, …) per
identificare l’azione.
Usa l’URL (Uniform Resource Locator) per identificare la
risorsa e i parametri
Usa il body per i dati inviati o ricevuti, tipicamente in
formato XML o JSON
REST: Uniform Interface
Nicolò Carandini
n.carandini@mahiz.it
REST: Stateless
Nicolò Carandini
n.carandini@mahiz.it
 Un servizio web che utilizza i metodi HTTP e implementa i principi
REST viene chiamato RESTful.
 ASP .NET WebAPI è un ottimo strumento di realizzazione di servizi
RESTful.
Attenzione:
 Non tutti i servizi web di tipo REST sono RESTful, si veda ad esempio
il concetto di discoverability:
If you are just using Rest for pretty urls mapped to CRUD operations that a consumer
must have prior knowledge of and calls according to a well known contract, Roy Fielding
would deem it not truly RESTful.
RESTful Web Service
Nicolò Carandini
n.carandini@mahiz.it
Per tener traccia del tempo impiegato dai vari developer
per il completamento dei task.
Basato sul cloud.
Verticalmente scalabile.
Utilizzabile da una pluralità di device.
Facilmente integrabile.
Un esempio di Web Service: TaskTimer
Nicolò Carandini
n.carandini@mahiz.it
TaskTimer: il modello
Nicolò Carandini
n.carandini@mahiz.it
TaskTimer: l’architettura del progetto
• Servizio RESTful
TaskTimer.WebAPI
• Data access layer e Business logic
TaskTimer.Data
• Modello ad oggetti e funzionalità di base
TaskTimer.Core
Nicolò Carandini
n.carandini@mahiz.it
La chiamata REST viene instradata al metodo del controller che implementa il
percorso contenuto nella URL:
ASP.NET WebAPI: Routing
http://tasktimer.com/api/v1/usersGET
UsersController
Nicolò Carandini
n.carandini@mahiz.it
Una chiamata REST è formata dal Verbo e dal Path e dai dati eventualmente
contenuti nei Query parameters, negli Headers e nel Body content.
I dati vengono utilizzati per valorizzare i parametri del metodo associato
attraverso un’operazione di binding:
ASP.NET WebAPI: Binding
http://tasktimer.com/api/v1/customers/123PUT
Controller
{
CompanyName : "Fiat"
}
Body
DTO
Nicolò Carandini
n.carandini@mahiz.it
L’ Application Programming Interface di un Web Service è definita da:
 L’elenco delle richieste e delle relative possibili risposte
 Per ciascuna di esse la descrizione dei dati, che possono essere
obbligatori o opzionali.
 Per quanto REST usi un meccanismo standard per effettuare le
richieste e ricevere le risposte, occorre comunque avere a
disposizione la documentazione delle API.
Web Service API
Nicolò Carandini
n.carandini@mahiz.it
Documentazione delle API
inizialmente viene fatta
poi diventa incompleta
e alla fine è spesso inesatta
Nicolò Carandini
n.carandini@mahiz.it
 Un linguaggio "JSON like" dedicato alla descrizione delle Web
Service API.
 E’ una specifica Open Source, ed è diventato lo standard di fatto del
mercato per la descrizione delle RESTful API.
 Intorno a questo "standard industriale" sono stati sviluppati molti
tools di:
 Generazione automatica del documento Swagger
 Generazione della documentazione dell’API
 Generazione del modello di classi DTO
Swagger
Nicolò Carandini
n.carandini@mahiz.it
Swagger UI è un insieme di template HTML, codice Javascript e CSS che
generano dinamicamente una documentazione dell’API fruibile da Web a partire
da un documento Swagger.
Swagger Ui
Nicolò Carandini
n.carandini@mahiz.it
 Fornito tramite NuGet Package.
 Genera automaticamente il documento Swagger.
 Contiene al suo interno Swagger-ui.
 Genera lo schema dei dati delle API tramite Reflection.
 Consente la personalizzazione della documentazione Swagger
generata e della Swagger UI.
 Utilizza e include automaticamente i commenti Xml del codice.
 Supporta la descrizione degli schemi ApiKey, Basic Auth and
OAuth2, incluso il supporto UI per l’Implicit OAuth2 flow.
Swashbuckle
Nicolò Carandini
n.carandini@mahiz.it
1. Abilitare la generazione della documentazione XML:
2. Abilitare l’uso della documentazione XML in Swagger UI:
Includere la documentazione XML del codice
Nicolò Carandini
n.carandini@mahiz.it
Demo: Swagger e Swagger UI con Swashbuckle
Nicolò Carandini
n.carandini@mahiz.it
 Lato Client, un’app usa HTTP per comunicare col servizio Web.
 I dati vengono scambiati attraverso la serializzazione /
deserializzazione di classi DTO (Data Transfer Object), composte di
sole proprietà, senza metodi.
 La generazione di questo modello "anemico" è noiosa e molto
ripetitiva.
 Utilizzare le risposte serializzate per generare le classi DTO non è
consigliabile.
Utilizzare un Web Service RESTful
Nicolò Carandini
n.carandini@mahiz.it
Qualunque operazione effettuabile su Azure è disponibile
tramite un servizio web di tipo REST.
Le API sono documentate con Swagger
Un generatore automatico consente, a partire dalla
documentazione scritta in Swagger, di produrre gli SDK di
Azure nei vari linguaggi.
Questo consente di avere tutti gli SDK sempre aggiornati
all’ultima versione delle Azure API.
Un caso d’uso: Azure e Swagger
Nicolò Carandini
n.carandini@mahiz.it
E’ un tool per la generazione di librerie client per l’accesso
di servizi web RESTful.
Come input viene utilizzato il documento che descrive le
REST API scritto in formato Swagger.
E’ in grado di generare librerie in diversi linguaggi, come
C#, Javascript, ecc.
AutoRest
Nicolò Carandini
n.carandini@mahiz.it
1. Scaricare il generatore AutoRest con il NuGet Package Manager.
2. Creare una cartella di lavoro (ad esempio AutoRest).
3. Copiare dal package "autorest.x" il file "autorest.x.nupkg" e la cartella "Tools"
nella cartella di lavoro.
4. Copiare nella cartella di lavoro il file swagger.json che descrive l’API del
servizio web
5. Sempre nella cartella di lavoro, creare il file batch di generazione:
6. Eseguire il file batch.
Come utilizzare AutoRest per generare il codice cliente
Nicolò Carandini
n.carandini@mahiz.it
1. Scaricare l’AutoRest client con il NuGet Package Manager.
2. Copiare il codice generato da AutoRest nel progetto.
3. Istanziare il servizio ed utilizzare le classi proxy per effettuare le richieste e
gestire le risposte:
Come utilizzare AutoRest nell’app cliente
Nicolò Carandini
n.carandini@mahiz.it
Swagger per tutti
AutoRESTSwashBuckle
HTTP Rest Comunication
Nicolò Carandini
n.carandini@mahiz.it
Azure App Service
Nicolò Carandini
n.carandini@mahiz.it
• Visual Editor per la creazione del flusso di elaborazione
• Un elevato numero di template disponibili
• Supporto per i più popolari servizi SaaS
• Può utilizzare custom API app fatte da noi
• BizTalk APIs for per scenari di integrazione evoluti
Logic Apps
Nicolò Carandini
n.carandini@mahiz.it
Il servizio viene utilizzato
dagli utenti tramite un sito
web e consente di fare
l'upload dei file da
stampare in 3D, scegliere
uno "stampatore"
dall'elenco di quelli più
vicini e ordinarne la stampa.
Esempio d’uso: 3D Hubs
Nicolò Carandini
n.carandini@mahiz.it
Per ogni ordine dev'essere svolta tutta una serie di attività, quali
ad esempio:
Elaborare alcuni dati come volume e dimensioni dell'oggetto da
stampare, a partire dai file di stampa ricevuti;
Recuperare dal database l'elenco degli "stampatori" ordinati per
distanza geografica dalla posizione in cui si trova il richiedente;
Quando il cliente eventualmente completa l'ordine, inviare i file
dati allo stampatore insieme a una email che lo avverta del
nuovo ordine di lavorazione da eseguire;
Quando lo stampatore comunica di aver terminato il lavoro,
avvertire il cliente tramite email.
Flusso di lavoro
Nicolò Carandini
n.carandini@mahiz.it
Per eseguire i diversi passi del flusso di lavoro è possibile
appoggiarsi ad altri servizi, come in questo caso:
NetFabb
per la verifica validità e autoriparazione dei file di stampa
Twilio
per l’invio di SMS
SQL Server
per la gestione dei dati
Collaborare con servizi esterni
Nicolò Carandini
n.carandini@mahiz.it
Utilizzare Logic Apps per l’integrazione dei servizi
Nicolò Carandini
n.carandini@mahiz.it
Di connettori già pronti ce ne sono davvero tanti, sia
Microsoft che di terze parti:
Logic App Connectors
Nicolò Carandini
n.carandini@mahiz.it
Custom Connector (a.k.a. API App)
Nicolò Carandini
n.carandini@mahiz.it
Lab: Costuiamo la nostra prima Logic App
Nicolò Carandini
n.carandini@mahiz.it
Swagger
swagger.io
Swashbuckle
github.com/domaindrivendev/Swashbuckle
AutoRest
github.com/Azure/autorest
Azure Logic Apps
azure.microsoft.com/en-us/documentation/services/app-service/logic
Riferimenti
Nicolò Carandini
n.carandini@mahiz.it
Swagger and ASP.NET Web API - Part I: Adding Swagger to Web API project
www.wmpratt.com/swagger-and-asp-net-web-api-part-1
Creating Service Contract with AutoRest, Swagger and HAL
blog.kloud.com.au/2015/10/26/creating-service-contract-with-autorest-swagger-and-hal
Introduzione alle Azure Logic App
www.windowsazureitalia.com/articoli/windows-azure/introduzione-azure-logic-apps.aspx
Lab: My First Azure Logic App
http://1drv.ms/1KZ4qBU
Azure Logic App with simple API App with inputs and outputs
blogs.msdn.com/b/hosamshobak/archive/2015/03/31/logic-app-with-simple-api-app-with-inputs-and-outputs.aspx
Articoli

Contenu connexe

Similaire à Swagger per tutti

Designing with microservices - Daniele Mondello
Designing with microservices - Daniele MondelloDesigning with microservices - Daniele Mondello
Designing with microservices - Daniele MondelloDaniele Mondello
 
Meetup Azure DevOps
Meetup Azure DevOpsMeetup Azure DevOps
Meetup Azure DevOpsdotnetcode
 
Meetup Azure DevOps
Meetup Azure DevOpsMeetup Azure DevOps
Meetup Azure DevOpsdotnetcode
 
Azure Web Apps: portare il tuo sito sul cloud
Azure Web Apps: portare il tuo sito sul cloudAzure Web Apps: portare il tuo sito sul cloud
Azure Web Apps: portare il tuo sito sul cloudDavide Benvegnù
 
Modi innovativi per costruire App
Modi innovativi per costruire AppModi innovativi per costruire App
Modi innovativi per costruire AppCommit University
 
Integrazione con Visual Studio Online
Integrazione con Visual Studio OnlineIntegrazione con Visual Studio Online
Integrazione con Visual Studio OnlineDavide Benvegnù
 
Pensiero Analogico e Microservizi
Pensiero Analogico  e MicroserviziPensiero Analogico  e Microservizi
Pensiero Analogico e MicroserviziConsulthinkspa
 
OpenDay 3 TIM WCap - 05/05/2016
OpenDay 3 TIM WCap - 05/05/2016OpenDay 3 TIM WCap - 05/05/2016
OpenDay 3 TIM WCap - 05/05/2016Gaetano Paternò
 
Gam05 costruisci il tuo antifurto perfetto con kinect e gli azure mobile se...
Gam05   costruisci il tuo antifurto perfetto con kinect e gli azure mobile se...Gam05   costruisci il tuo antifurto perfetto con kinect e gli azure mobile se...
Gam05 costruisci il tuo antifurto perfetto con kinect e gli azure mobile se...DotNetCampus
 
Web in real time con signalR
Web in real time con signalRWeb in real time con signalR
Web in real time con signalRNicolò Carandini
 
DomusDotNet, DotNetCode & dotNET{podcast} Meetup - Serverless Computing - Gio...
DomusDotNet, DotNetCode & dotNET{podcast} Meetup - Serverless Computing - Gio...DomusDotNet, DotNetCode & dotNET{podcast} Meetup - Serverless Computing - Gio...
DomusDotNet, DotNetCode & dotNET{podcast} Meetup - Serverless Computing - Gio...Codemotion
 
ASP.NET AND Azure Function
ASP.NET AND Azure FunctionASP.NET AND Azure Function
ASP.NET AND Azure FunctionLuca Congiu
 
Win02 bing e windows store apps
Win02   bing e windows store appsWin02   bing e windows store apps
Win02 bing e windows store appsDotNetCampus
 
.NET Microservices
.NET Microservices.NET Microservices
.NET MicroservicesLuca Congiu
 
Cloud & No-Coding: come fare su Azure?
Cloud & No-Coding: come fare su Azure?Cloud & No-Coding: come fare su Azure?
Cloud & No-Coding: come fare su Azure?Andrea Carratta
 

Similaire à Swagger per tutti (20)

Designing with microservices - Daniele Mondello
Designing with microservices - Daniele MondelloDesigning with microservices - Daniele Mondello
Designing with microservices - Daniele Mondello
 
Meetup Azure DevOps
Meetup Azure DevOpsMeetup Azure DevOps
Meetup Azure DevOps
 
Game matching with SignalR
Game matching with SignalRGame matching with SignalR
Game matching with SignalR
 
Game matching with SignalR
Game matching with SignalRGame matching with SignalR
Game matching with SignalR
 
Meetup Azure DevOps
Meetup Azure DevOpsMeetup Azure DevOps
Meetup Azure DevOps
 
Azure Web Apps: portare il tuo sito sul cloud
Azure Web Apps: portare il tuo sito sul cloudAzure Web Apps: portare il tuo sito sul cloud
Azure Web Apps: portare il tuo sito sul cloud
 
Modi innovativi per costruire App
Modi innovativi per costruire AppModi innovativi per costruire App
Modi innovativi per costruire App
 
JAX-WS e JAX-RS
JAX-WS e JAX-RSJAX-WS e JAX-RS
JAX-WS e JAX-RS
 
Creare PWA con Angular
Creare PWA con AngularCreare PWA con Angular
Creare PWA con Angular
 
Integrazione con Visual Studio Online
Integrazione con Visual Studio OnlineIntegrazione con Visual Studio Online
Integrazione con Visual Studio Online
 
Pensiero Analogico e Microservizi
Pensiero Analogico  e MicroserviziPensiero Analogico  e Microservizi
Pensiero Analogico e Microservizi
 
OpenDay 3 TIM WCap - 05/05/2016
OpenDay 3 TIM WCap - 05/05/2016OpenDay 3 TIM WCap - 05/05/2016
OpenDay 3 TIM WCap - 05/05/2016
 
Acadevmy - PWA Overview
Acadevmy - PWA OverviewAcadevmy - PWA Overview
Acadevmy - PWA Overview
 
Gam05 costruisci il tuo antifurto perfetto con kinect e gli azure mobile se...
Gam05   costruisci il tuo antifurto perfetto con kinect e gli azure mobile se...Gam05   costruisci il tuo antifurto perfetto con kinect e gli azure mobile se...
Gam05 costruisci il tuo antifurto perfetto con kinect e gli azure mobile se...
 
Web in real time con signalR
Web in real time con signalRWeb in real time con signalR
Web in real time con signalR
 
DomusDotNet, DotNetCode & dotNET{podcast} Meetup - Serverless Computing - Gio...
DomusDotNet, DotNetCode & dotNET{podcast} Meetup - Serverless Computing - Gio...DomusDotNet, DotNetCode & dotNET{podcast} Meetup - Serverless Computing - Gio...
DomusDotNet, DotNetCode & dotNET{podcast} Meetup - Serverless Computing - Gio...
 
ASP.NET AND Azure Function
ASP.NET AND Azure FunctionASP.NET AND Azure Function
ASP.NET AND Azure Function
 
Win02 bing e windows store apps
Win02   bing e windows store appsWin02   bing e windows store apps
Win02 bing e windows store apps
 
.NET Microservices
.NET Microservices.NET Microservices
.NET Microservices
 
Cloud & No-Coding: come fare su Azure?
Cloud & No-Coding: come fare su Azure?Cloud & No-Coding: come fare su Azure?
Cloud & No-Coding: come fare su Azure?
 

Plus de Nicolò Carandini

Wasm and Blazor CDays keynote
Wasm and Blazor CDays keynoteWasm and Blazor CDays keynote
Wasm and Blazor CDays keynoteNicolò Carandini
 
The absolute need of Secure Http
The absolute need of Secure HttpThe absolute need of Secure Http
The absolute need of Secure HttpNicolò Carandini
 
Christmas greetings cards with blazor
Christmas greetings cards with blazorChristmas greetings cards with blazor
Christmas greetings cards with blazorNicolò Carandini
 
Code review e pair programming con Visual Studio Live Share
Code review e pair programming con Visual Studio Live ShareCode review e pair programming con Visual Studio Live Share
Code review e pair programming con Visual Studio Live ShareNicolò Carandini
 
The Hitchhiker's Guide to the Azure Galaxy
The Hitchhiker's Guide to the Azure GalaxyThe Hitchhiker's Guide to the Azure Galaxy
The Hitchhiker's Guide to the Azure GalaxyNicolò Carandini
 
Web app slots and webapi versioning
Web app slots and webapi versioningWeb app slots and webapi versioning
Web app slots and webapi versioningNicolò Carandini
 
Mobile services multi-piattaforma con Xamarin
Mobile services multi-piattaforma con XamarinMobile services multi-piattaforma con Xamarin
Mobile services multi-piattaforma con XamarinNicolò Carandini
 
Universal Apps localization and globalization
Universal Apps localization and globalizationUniversal Apps localization and globalization
Universal Apps localization and globalizationNicolò Carandini
 
Applicazioni web con ASP.NET Owin e Katana
Applicazioni web con ASP.NET Owin e KatanaApplicazioni web con ASP.NET Owin e Katana
Applicazioni web con ASP.NET Owin e KatanaNicolò Carandini
 
Azure Mobile Services con il .NET Framework
Azure Mobile Services con il .NET FrameworkAzure Mobile Services con il .NET Framework
Azure Mobile Services con il .NET FrameworkNicolò Carandini
 
Sviluppare app per iOS e Android con Xamarin e Visual Studio
Sviluppare app per iOS e Android con Xamarin e Visual StudioSviluppare app per iOS e Android con Xamarin e Visual Studio
Sviluppare app per iOS e Android con Xamarin e Visual StudioNicolò Carandini
 

Plus de Nicolò Carandini (20)

Wasm and Blazor CDays keynote
Wasm and Blazor CDays keynoteWasm and Blazor CDays keynote
Wasm and Blazor CDays keynote
 
The absolute need of Secure Http
The absolute need of Secure HttpThe absolute need of Secure Http
The absolute need of Secure Http
 
Christmas greetings cards with blazor
Christmas greetings cards with blazorChristmas greetings cards with blazor
Christmas greetings cards with blazor
 
Xamarin DevOps
Xamarin DevOpsXamarin DevOps
Xamarin DevOps
 
Code review e pair programming con Visual Studio Live Share
Code review e pair programming con Visual Studio Live ShareCode review e pair programming con Visual Studio Live Share
Code review e pair programming con Visual Studio Live Share
 
Azure dev ops meetup one
Azure dev ops meetup oneAzure dev ops meetup one
Azure dev ops meetup one
 
Spa with Blazor
Spa with BlazorSpa with Blazor
Spa with Blazor
 
The Hitchhiker's Guide to the Azure Galaxy
The Hitchhiker's Guide to the Azure GalaxyThe Hitchhiker's Guide to the Azure Galaxy
The Hitchhiker's Guide to the Azure Galaxy
 
Swagger loves WebAPI
Swagger loves WebAPISwagger loves WebAPI
Swagger loves WebAPI
 
Xamarin Workbooks
Xamarin WorkbooksXamarin Workbooks
Xamarin Workbooks
 
Web app slots and webapi versioning
Web app slots and webapi versioningWeb app slots and webapi versioning
Web app slots and webapi versioning
 
Intro xamarin forms
Intro xamarin formsIntro xamarin forms
Intro xamarin forms
 
Windows 10 design
Windows 10 designWindows 10 design
Windows 10 design
 
Windows 10 IoT
Windows 10 IoTWindows 10 IoT
Windows 10 IoT
 
Mobile services multi-piattaforma con Xamarin
Mobile services multi-piattaforma con XamarinMobile services multi-piattaforma con Xamarin
Mobile services multi-piattaforma con Xamarin
 
Universal Apps localization and globalization
Universal Apps localization and globalizationUniversal Apps localization and globalization
Universal Apps localization and globalization
 
Applicazioni web con ASP.NET Owin e Katana
Applicazioni web con ASP.NET Owin e KatanaApplicazioni web con ASP.NET Owin e Katana
Applicazioni web con ASP.NET Owin e Katana
 
Azure Mobile Services con il .NET Framework
Azure Mobile Services con il .NET FrameworkAzure Mobile Services con il .NET Framework
Azure Mobile Services con il .NET Framework
 
Sviluppare app per iOS e Android con Xamarin e Visual Studio
Sviluppare app per iOS e Android con Xamarin e Visual StudioSviluppare app per iOS e Android con Xamarin e Visual Studio
Sviluppare app per iOS e Android con Xamarin e Visual Studio
 
Xaml introduction
Xaml introductionXaml introduction
Xaml introduction
 

Dernier

ScrapeGraphAI: a new way to scrape context with AI
ScrapeGraphAI: a new way to scrape context with AIScrapeGraphAI: a new way to scrape context with AI
ScrapeGraphAI: a new way to scrape context with AIinfogdgmi
 
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...Associazione Digital Days
 
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...Associazione Digital Days
 
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...Associazione Digital Days
 
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...Associazione Digital Days
 
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”Associazione Digital Days
 

Dernier (6)

ScrapeGraphAI: a new way to scrape context with AI
ScrapeGraphAI: a new way to scrape context with AIScrapeGraphAI: a new way to scrape context with AI
ScrapeGraphAI: a new way to scrape context with AI
 
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...
 
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...
 
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...
 
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...
 
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”
 

Swagger per tutti