SlideShare a Scribd company logo
1 of 58
{
"id": "oscon2014",
"type": "Event",
"name": "OSCON",
"description": "O'Reilly Open Source Convention 2014",
"startDate": "2014-07-20T16:00:00Z",
"endDate": "2014-07-24T21:00:00Z",
"location": "Oregon Convention Center",
"organizer": "O'Reilly"
}
http://example.com/events/oscon2014
http://example.com/events/oscon2014
{
69 64: 6F 73 63 6F 6E 32 30 31 34 0D,
74 79 70 65: 45 76 65 6E 74 0D,
6E 61 6D 65: 4F 53 43 4F 4E 0D,
64 65 73 63 72 69 70 74 69 6F 6E: 4F 27 52 65 69 6C 6C …
73 74 61 72 74 44 61 74 65: 32 30 31 34 2D 30 37 2D 32 …
65 6E 64 44 61 74 65: 32 30 31 34 2D 30 37 2D 32 34 54 …
6C 6F 63 61 74 69 6F 6E: 4F 72 65 67 6F 6E 20 43 6F 6E …
6F 72 67 61 6E 69 7A 65 72: 4F 27 52 65 69 6C 6C 79 0D
}
http://example.com/events/oscon2014
{
"id": "oscon2014",
"type": "Event",
"name": "OSCON",
"description": "O'Reilly Open Source Convention 2014",
"startDate": "2014-07-20T16:00:00Z",
"endDate": "2014-07-24T21:00:00Z",
"location": "Oregon Convention Center",
"organizer": "O'Reilly"
}
http://example.com/events/oscon2014
{
"id": "oscon2014",
"type": "Event",
"name": "OSCON",
"description": "O'Reilly Open Source Convention 2014",
"startDate": "2014-07-20T16:00:00Z",
"endDate": "2014-07-24T21:00:00Z",
"location": "Oregon Convention Center",
"organizer": "O'Reilly"
}
http://example.com/events/oscon2014
{
"id": "oscon2014",
"type": "Event",
"name": "OSCON",
"description": "O'Reilly Open Source Convention 2014",
"startDate": "2014-07-20T16:00:00Z",
"endDate": "2014-07-24T21:00:00Z",
"location": "Oregon Convention Center",
"organizer": "O'Reilly"
}
http://example.com/events/oscon2014
{
"@context": {
"name": "http://schema.org/name",
"description": "http://schema.org/description",
"startDate": "http://schema.org/startDate",
...
},
"id": "oscon2014",
"type": "Event",
"name": "OSCON",
"description": "O'Reilly Open Source Convention 2014",
"startDate": "2014-07-20T16:00:00Z",
"endDate": "2014-07-24T21:00:00Z",
"location": "Oregon Convention Center",
"organizer": "O'Reilly"
}
http://example.com/events/oscon2014
"@context": {
"@vocab": "http://schema.org/"
},
"id": "oscon2014",
"type": "Event",
"name": "OSCON",
"description": "O'Reilly Open Source Convention 2014",
"startDate": "2014-07-20T16:00:00Z",
"endDate": "2014-07-24T21:00:00Z",
"location": "Oregon Convention Center",
"organizer": "O'Reilly"
}
http://example.com/events/oscon2014
"@context": {
"@vocab": "http://schema.org/"
},
"id": "oscon2014",
"type": "Event",
"name": "OSCON",
"description": "O'Reilly Open Source Convention 2014",
"startDate": "2014-07-20T16:00:00Z",
"endDate": "2014-07-24T21:00:00Z",
"location": "Oregon Convention Center",
"organizer": "O'Reilly"
}
http://example.com/events/oscon2014
"@context": {
"@vocab": "http://schema.org/"
},
"@id": "oscon2014",
"type": "Event",
"name": "OSCON",
"description": "O'Reilly Open Source Convention 2014",
"startDate": "2014-07-20T16:00:00Z",
"endDate": "2014-07-24T21:00:00Z",
"location": "Oregon Convention Center",
"organizer": "O'Reilly"
}
http://example.com/events/oscon2014
"@context": {
"@vocab": "http://schema.org/"
},
"@id": "oscon2014",
"@type": "Event",
"name": "OSCON",
"description": "O'Reilly Open Source Convention 2014",
"startDate": "2014-07-20T16:00:00Z",
"endDate": "2014-07-24T21:00:00Z",
"location": "Oregon Convention Center",
"organizer": "O'Reilly"
}
http://example.com/events/oscon2014
{
"@context": {
"@vocab": "http://schema.org/",
"startDate": { "@type": "DateTime" }
},
"@id": "oscon2014",
"@type": "Event",
"name": "OSCON",
"description": "O'Reilly Open Source Convention 2014",
"startDate": "2014-07-20T16:00:00Z",
"endDate": "2014-07-24T21:00:00Z",
"location": "Oregon Convention Center",
"organizer": "O'Reilly"
}
http://example.com/events/oscon2014
{
"@context": {
...
"startDate": { "@type": "DateTime" }
"id": "@id",
"type": "@type"
},
"id": "oscon2014",
"type": "Event",
"name": "OSCON",
"description": "O'Reilly Open Source Convention 2014",
"startDate": "2014-07-20T16:00:00Z",
"endDate": "2014-07-24T21:00:00Z",
"location": "Oregon Convention Center",
"organizer": "O'Reilly"
}
http://example.com/events/oscon2014
{
"@context": "/contexts/event.jsonld",
"id": "oscon2014",
"type": "Event",
"name": "OSCON",
"description": "O'Reilly Open Source Convention 2014",
"startDate": "2014-07-20T16:00:00Z",
"endDate": "2014-07-24T21:00:00Z",
"location": "Oregon Convention Center",
"organizer": "O'Reilly"
}
http://example.com/events/oscon2014
{
"id": "oscon2014",
"type": "Event",
"name": "OSCON",
"description": "O'Reilly Open Source Convention 2014",
"startDate": "2014-07-20T16:00:00Z",
"endDate": "2014-07-24T21:00:00Z",
"location": "Oregon Convention Center",
"organizer": "O'Reilly"
}
http://example.com/events/oscon2014
HTTP/1.1 200 OK
Content-Type: application/json
Link: </contexts/event.jsonld>;
rel="http://www.w3.org/ns/json-ld#context";
type="application/ld+json"
{
"id": "oscon2014",
"type": "Event",
"name": "OSCON",
"description": "O'Reilly Open Source Convention 2014",
"startDate": "2014-07-20T16:00:00Z",
"endDate": "2014-07-24T21:00:00Z",
"location": "Oregon Convention Center",
"organizer": "O'Reilly"
}
<script type="application/ld+json">
...
</script>
http://example.com/events/
{
"@id": "/events/",
"@type": "Collection",
"member": [ ... ],
...
"operation": {
"@type": "http://schema.org/AddAction",
}
}
{
"@id": "Event",
"@type": "Class",
"supportedProperty": {
"property": "name",
"required": true
}
}
http://example.com/events/
{
"@id": "/events/",
"@type": "Collection",
"member": [ ... ],
...
"operation": {
"@type": "AddAction",
"method": "POST",
"expects": "Event"
}
}
{
"@id": "Event",
"@type": "Class",
"supportedProperty": {
"property": "name",
"required": true
}
}
http://example.com/events/
{
"@id": "/events/",
"@type": "Collection",
"member": [ ... ],
...
"operation": {
"@type": "AddAction",
"method": "POST",
"expects": "Event"
}
}
{
"@id": "Event",
"@type": "Class",
"supportedProperty": {
"property": "name",
"required": true
}
}
http://example.com/events/oregon/
{
"@id": "/events/oregon/",
"@type": "Collection",
"member": [ ... ],
...
"operation": {
"@type": "AddAction",
"method": "POST",
"expects": "Event"
}
}
http://example.com/events/oregon/
{
"@id": "/events/oregon/",
"@type": "Collection",
"member": [ ... ],
...
}
{
"@type": "AddAction",
"method": "POST",
"expects": "Event"
}
{
"@id": "EventCollection",
"@type": "Class",
"subClassOf": "Collection",
"supportedOperation": {
"@type": "AddAction",
"method": "POST",
"expects": "Event"
}
}
http://example.com/events/oregon/
{
"@id": "/events/oregon/",
"@type": "EventCollection",
"member": [ ... ],
...
}
{
"@type": "AddAction",
"method": "POST",
"expects": "Event"
}
/**
* Event
*
* @HydraExpose(iri="http://schema.org/Event")
* @HydraId("event_retrieve")
* @HydraOperations( {
* "event_replace",
* "event_delete"
* } )
*/
class Event
{
/**
* The event's name
*
* @HydraExpose(iri="http://schema.org/name", required=true)
*/
private $name;
// ... other members and methods ...
}
$ php app/console hydra:generate:crud 
--entity=MLEventApiBundle:Event 
--route-prefix=/events/ 
--with-write 
--no-interaction
CRUD generation
Generating the CRUD code: OK
You can now start using the generated code!
/**
* Event controller
*
* @Route("/events")
*/
class EventController extends HydraController
{
/**
* Creates a new Event entity
*
* @Route("/", name="event_create")
* @Method("POST")
*
* @HydraOperation(
* type = "http://schema.org/AddAction",
* expect = "MLEventApiBundleEntityEvent"
* })
*
* @return MLEventApiBundleEntityEvent
*/
public function collectionPostAction(Request $request)
{
...
Creating Awesome Web APIs is a Breeze
Creating Awesome Web APIs is a Breeze
Creating Awesome Web APIs is a Breeze
Creating Awesome Web APIs is a Breeze
Creating Awesome Web APIs is a Breeze
Creating Awesome Web APIs is a Breeze
Creating Awesome Web APIs is a Breeze
Creating Awesome Web APIs is a Breeze
Creating Awesome Web APIs is a Breeze
Creating Awesome Web APIs is a Breeze
Creating Awesome Web APIs is a Breeze

More Related Content

What's hot

What's hot (20)

Real Life Clean Architecture
Real Life Clean ArchitectureReal Life Clean Architecture
Real Life Clean Architecture
 
spring-boot-fr.pdf
spring-boot-fr.pdfspring-boot-fr.pdf
spring-boot-fr.pdf
 
ClickHouse in Real Life. Case Studies and Best Practices, by Alexander Zaitsev
ClickHouse in Real Life. Case Studies and Best Practices, by Alexander ZaitsevClickHouse in Real Life. Case Studies and Best Practices, by Alexander Zaitsev
ClickHouse in Real Life. Case Studies and Best Practices, by Alexander Zaitsev
 
PostgreSQL Performance Tables Partitioning vs. Aggregated Data Tables
PostgreSQL Performance Tables Partitioning vs. Aggregated Data TablesPostgreSQL Performance Tables Partitioning vs. Aggregated Data Tables
PostgreSQL Performance Tables Partitioning vs. Aggregated Data Tables
 
JSON-LD for RESTful services
JSON-LD for RESTful servicesJSON-LD for RESTful services
JSON-LD for RESTful services
 
Django
DjangoDjango
Django
 
JDBC - JPA - Spring Data
JDBC - JPA - Spring DataJDBC - JPA - Spring Data
JDBC - JPA - Spring Data
 
jQuery from the very beginning
jQuery from the very beginningjQuery from the very beginning
jQuery from the very beginning
 
CSS Grid Layout for Topconf, Linz
CSS Grid Layout for Topconf, LinzCSS Grid Layout for Topconf, Linz
CSS Grid Layout for Topconf, Linz
 
Project Lombok!
Project Lombok!Project Lombok!
Project Lombok!
 
Google Maps JS API
Google Maps JS APIGoogle Maps JS API
Google Maps JS API
 
Spring Boot
Spring BootSpring Boot
Spring Boot
 
JSON-LD and MongoDB
JSON-LD and MongoDBJSON-LD and MongoDB
JSON-LD and MongoDB
 
Flask Basics
Flask BasicsFlask Basics
Flask Basics
 
Postgresql
PostgresqlPostgresql
Postgresql
 
Data lineage and observability with Marquez - subsurface 2020
Data lineage and observability with Marquez - subsurface 2020Data lineage and observability with Marquez - subsurface 2020
Data lineage and observability with Marquez - subsurface 2020
 
날로 먹는 Django admin 활용
날로 먹는 Django admin 활용날로 먹는 Django admin 활용
날로 먹는 Django admin 활용
 
Sql vs NoSQL
Sql vs NoSQLSql vs NoSQL
Sql vs NoSQL
 
PostgreSQL
PostgreSQLPostgreSQL
PostgreSQL
 
Introduction à spring boot
Introduction à spring bootIntroduction à spring boot
Introduction à spring boot
 

Viewers also liked

Evaluación de la Educación en Ciudad de Bs As: por la mala senda
Evaluación de la Educación en Ciudad de Bs As:  por la mala sendaEvaluación de la Educación en Ciudad de Bs As:  por la mala senda
Evaluación de la Educación en Ciudad de Bs As: por la mala senda
Laura Marrone
 

Viewers also liked (16)

Stop Reinventing the Wheel! Use Linked Data to Build Better APIs
Stop Reinventing the Wheel! Use Linked Data to Build Better APIsStop Reinventing the Wheel! Use Linked Data to Build Better APIs
Stop Reinventing the Wheel! Use Linked Data to Build Better APIs
 
Hypermedia Cannot be the Engine
Hypermedia Cannot be the EngineHypermedia Cannot be the Engine
Hypermedia Cannot be the Engine
 
The Web 3.0 is just around the corner. Be prepared!
The Web 3.0 is just around the corner. Be prepared!The Web 3.0 is just around the corner. Be prepared!
The Web 3.0 is just around the corner. Be prepared!
 
Lisp Macros in 20 Minutes (Featuring Clojure)
Lisp Macros in 20 Minutes (Featuring Clojure)Lisp Macros in 20 Minutes (Featuring Clojure)
Lisp Macros in 20 Minutes (Featuring Clojure)
 
Model Your Application Domain, Not Your JSON Structures
Model Your Application Domain, Not Your JSON StructuresModel Your Application Domain, Not Your JSON Structures
Model Your Application Domain, Not Your JSON Structures
 
Presentation For Arin6912
Presentation For Arin6912Presentation For Arin6912
Presentation For Arin6912
 
SOCIAL MEDIA PRESENTATION: Staff Relations - Raising our Collective Understan...
SOCIAL MEDIA PRESENTATION: Staff Relations - Raising our Collective Understan...SOCIAL MEDIA PRESENTATION: Staff Relations - Raising our Collective Understan...
SOCIAL MEDIA PRESENTATION: Staff Relations - Raising our Collective Understan...
 
SharePoint 2016 Up Close and Personal
SharePoint 2016   Up Close and PersonalSharePoint 2016   Up Close and Personal
SharePoint 2016 Up Close and Personal
 
Good governance for new bank products
Good governance for new bank productsGood governance for new bank products
Good governance for new bank products
 
Evaluación de la Educación en Ciudad de Bs As: por la mala senda
Evaluación de la Educación en Ciudad de Bs As:  por la mala sendaEvaluación de la Educación en Ciudad de Bs As:  por la mala senda
Evaluación de la Educación en Ciudad de Bs As: por la mala senda
 
ренейм пптха
ренейм пптхаренейм пптха
ренейм пптха
 
Weekly plannig6 2012
Weekly plannig6 2012Weekly plannig6 2012
Weekly plannig6 2012
 
Построение гиперболического параболоида
Построение гиперболического параболоидаПостроение гиперболического параболоида
Построение гиперболического параболоида
 
GPS the Path to Student Success - SmarterMeasure Best Practices
GPS the Path to Student Success - SmarterMeasure Best PracticesGPS the Path to Student Success - SmarterMeasure Best Practices
GPS the Path to Student Success - SmarterMeasure Best Practices
 
DBW 7x20x21 - Dean Johnson, Brandwidth
DBW 7x20x21 - Dean Johnson, BrandwidthDBW 7x20x21 - Dean Johnson, Brandwidth
DBW 7x20x21 - Dean Johnson, Brandwidth
 
How to get Executive Buy-in for Employee Recognition
How to get Executive Buy-in for Employee RecognitionHow to get Executive Buy-in for Employee Recognition
How to get Executive Buy-in for Employee Recognition
 

More from Markus Lanthaler

Aligning Web Services with the Semantic Web to Create a Global Read-Write Gra...
Aligning Web Services with the Semantic Web to Create a Global Read-Write Gra...Aligning Web Services with the Semantic Web to Create a Global Read-Write Gra...
Aligning Web Services with the Semantic Web to Create a Global Read-Write Gra...
Markus Lanthaler
 

More from Markus Lanthaler (9)

From Strings to Things to a Web of Services
From Strings to Things to a Web of ServicesFrom Strings to Things to a Web of Services
From Strings to Things to a Web of Services
 
Creating 3rd Generation Web APIs with Hydra
Creating 3rd Generation Web APIs with HydraCreating 3rd Generation Web APIs with Hydra
Creating 3rd Generation Web APIs with Hydra
 
Hydra: A Vocabulary for Hypermedia-Driven Web APIs
Hydra: A Vocabulary for Hypermedia-Driven Web APIsHydra: A Vocabulary for Hypermedia-Driven Web APIs
Hydra: A Vocabulary for Hypermedia-Driven Web APIs
 
A Web of Things to Reduce Energy Wastage
A Web of Things to Reduce Energy WastageA Web of Things to Reduce Energy Wastage
A Web of Things to Reduce Energy Wastage
 
Aligning Web Services with the Semantic Web to Create a Global Read-Write Gra...
Aligning Web Services with the Semantic Web to Create a Global Read-Write Gra...Aligning Web Services with the Semantic Web to Create a Global Read-Write Gra...
Aligning Web Services with the Semantic Web to Create a Global Read-Write Gra...
 
SAPS - Semantic AtomPub-based Services
SAPS - Semantic AtomPub-based ServicesSAPS - Semantic AtomPub-based Services
SAPS - Semantic AtomPub-based Services
 
A Semantic Description Language for RESTful Data Services to Combat Semaphobia
A Semantic Description Language for RESTful Data Services to Combat SemaphobiaA Semantic Description Language for RESTful Data Services to Combat Semaphobia
A Semantic Description Language for RESTful Data Services to Combat Semaphobia
 
Semantic Web Services: State of the Art
Semantic Web Services: State of the ArtSemantic Web Services: State of the Art
Semantic Web Services: State of the Art
 
Towards a RESTful Service Ecosystem
Towards a RESTful Service EcosystemTowards a RESTful Service Ecosystem
Towards a RESTful Service Ecosystem
 

Recently uploaded

AKTU Computer Networks notes --- Unit 3.pdf
AKTU Computer Networks notes ---  Unit 3.pdfAKTU Computer Networks notes ---  Unit 3.pdf
AKTU Computer Networks notes --- Unit 3.pdf
ankushspencer015
 
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
dollysharma2066
 
Call Girls in Netaji Nagar, Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
Call Girls in Netaji Nagar, Delhi 💯 Call Us 🔝9953056974 🔝 Escort ServiceCall Girls in Netaji Nagar, Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
Call Girls in Netaji Nagar, Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
dharasingh5698
 

Recently uploaded (20)

CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete RecordCCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
 
Call Girls Wakad Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Wakad Call Me 7737669865 Budget Friendly No Advance BookingCall Girls Wakad Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Wakad Call Me 7737669865 Budget Friendly No Advance Booking
 
Generative AI or GenAI technology based PPT
Generative AI or GenAI technology based PPTGenerative AI or GenAI technology based PPT
Generative AI or GenAI technology based PPT
 
AKTU Computer Networks notes --- Unit 3.pdf
AKTU Computer Networks notes ---  Unit 3.pdfAKTU Computer Networks notes ---  Unit 3.pdf
AKTU Computer Networks notes --- Unit 3.pdf
 
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
 
Online banking management system project.pdf
Online banking management system project.pdfOnline banking management system project.pdf
Online banking management system project.pdf
 
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdfONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
 
Unit 1 - Soil Classification and Compaction.pdf
Unit 1 - Soil Classification and Compaction.pdfUnit 1 - Soil Classification and Compaction.pdf
Unit 1 - Soil Classification and Compaction.pdf
 
Design For Accessibility: Getting it right from the start
Design For Accessibility: Getting it right from the startDesign For Accessibility: Getting it right from the start
Design For Accessibility: Getting it right from the start
 
UNIT - IV - Air Compressors and its Performance
UNIT - IV - Air Compressors and its PerformanceUNIT - IV - Air Compressors and its Performance
UNIT - IV - Air Compressors and its Performance
 
Call Girls in Netaji Nagar, Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
Call Girls in Netaji Nagar, Delhi 💯 Call Us 🔝9953056974 🔝 Escort ServiceCall Girls in Netaji Nagar, Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
Call Girls in Netaji Nagar, Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
 
Thermal Engineering Unit - I & II . ppt
Thermal Engineering  Unit - I & II . pptThermal Engineering  Unit - I & II . ppt
Thermal Engineering Unit - I & II . ppt
 
Work-Permit-Receiver-in-Saudi-Aramco.pptx
Work-Permit-Receiver-in-Saudi-Aramco.pptxWork-Permit-Receiver-in-Saudi-Aramco.pptx
Work-Permit-Receiver-in-Saudi-Aramco.pptx
 
(INDIRA) Call Girl Bhosari Call Now 8617697112 Bhosari Escorts 24x7
(INDIRA) Call Girl Bhosari Call Now 8617697112 Bhosari Escorts 24x7(INDIRA) Call Girl Bhosari Call Now 8617697112 Bhosari Escorts 24x7
(INDIRA) Call Girl Bhosari Call Now 8617697112 Bhosari Escorts 24x7
 
Thermal Engineering -unit - III & IV.ppt
Thermal Engineering -unit - III & IV.pptThermal Engineering -unit - III & IV.ppt
Thermal Engineering -unit - III & IV.ppt
 
Booking open Available Pune Call Girls Pargaon 6297143586 Call Hot Indian Gi...
Booking open Available Pune Call Girls Pargaon  6297143586 Call Hot Indian Gi...Booking open Available Pune Call Girls Pargaon  6297143586 Call Hot Indian Gi...
Booking open Available Pune Call Girls Pargaon 6297143586 Call Hot Indian Gi...
 
Double Revolving field theory-how the rotor develops torque
Double Revolving field theory-how the rotor develops torqueDouble Revolving field theory-how the rotor develops torque
Double Revolving field theory-how the rotor develops torque
 
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
 
data_management_and _data_science_cheat_sheet.pdf
data_management_and _data_science_cheat_sheet.pdfdata_management_and _data_science_cheat_sheet.pdf
data_management_and _data_science_cheat_sheet.pdf
 
FEA Based Level 3 Assessment of Deformed Tanks with Fluid Induced Loads
FEA Based Level 3 Assessment of Deformed Tanks with Fluid Induced LoadsFEA Based Level 3 Assessment of Deformed Tanks with Fluid Induced Loads
FEA Based Level 3 Assessment of Deformed Tanks with Fluid Induced Loads
 

Creating Awesome Web APIs is a Breeze