SlideShare a Scribd company logo
RESTify your AppsThe pyOCCI module Thijs Metsch Senior Software Engineer Grid and Cloud Technology tmetsch@platform.com
To RESTify your AppsorHow to Provide a Service to your customers {whatever}-Layer
How? / What? (Resource-aaS) Create, Retrieve, Update and Delete Resources  Your App What is a Resource? Resources Perform Actions and Link Resources Expose Resources across Boundaries
What is a Resource? The URI  (Resource representation)http://example.com/foo/bar  can be:
Pool of Resources What do you need? Resource How to identify, query, list, handle, link, group, perform actions and tag resources? Resource Resource Resource Resource Resource Resource
What it is 1 It’s Capabilities 2 What it belongs to (grouping) 3 What Categories tells youabout a Resource:
HTTP The only thing you need to do… Pool of Resources Resource pyOCCI module Resource Resource Resource HTTP Resource Resource Resource The ‘glue’ You App pyREST takes care of this
You NEED to: Map you Resources to REST-Resources by implementing: Create, Retrieve, Update, Delete and Action routines
You GET for free: A interface to your Resources, a way to identify a resources, manage resources, query capabilities, external RESTful interface, an integration point, a (Cloud) Service, Beer,… pyREST module deals with all the hard issues: HTTP, Content-Types, Security, Query interface, Renderings etc.
Flexible/Modular/Clear Separation A Look inside of pyOCCI Backend HTTP HeaderRendering Your App Backend HTTP text/uri-list Rendering OCCI Model* Backend HTTP Handling HTTP text/plain Rendering Backend Handles HTTP verbs (POST,PUT,DELETE,GET) & stuff (REST, Security, etc.) HTTP text/html Rendering … Backend defines categories it can handle(Automatic selection) Map HTTP Data to OCCI Model(Automatic selection) * http://www.occi-wg.org
Examples (1) Query int – shows what this Service can handle
Examples (2) Create New… What is it? See Query int. Actions & Links Attributes
Examples (3) Basically any Programming Language (Integration) CLI
? The pyOCCI module is part of pySSF: http://pyssf.sf.net Version: 0.2.19(This is pre- (Do not try this at home) -Alpha Software - also in pypi) LGPL Licensed © Platform Computing
BACKUP
Documentation
CI (Testing, etc…)
Code Quality
Work In Progress

More Related Content

Similar to Restify Your Apps

Modified REST Presentation
Modified REST PresentationModified REST Presentation
Modified REST Presentation
Alexandros Marinos
 
O reilly sacon2018nyc - restful api design - master - v1.0
O reilly sacon2018nyc - restful api design - master - v1.0O reilly sacon2018nyc - restful api design - master - v1.0
O reilly sacon2018nyc - restful api design - master - v1.0
Tom Hofte
 
Building Valuable Restful APIs - HRPHP 2015
Building Valuable Restful APIs - HRPHP 2015Building Valuable Restful APIs - HRPHP 2015
Building Valuable Restful APIs - HRPHP 2015
Guillermo A. Fisher
 
Restful Best Practices
Restful Best PracticesRestful Best Practices
Restful Best Practices
Belighted
 
Api best practices
Api best practicesApi best practices
Api best practices
Saravanan R.S
 
REST Architecture with use case and example
REST Architecture with use case and exampleREST Architecture with use case and example
REST Architecture with use case and example
Shailesh singh
 
REST Architecture with use case and example
REST Architecture with use case and exampleREST Architecture with use case and example
REST Architecture with use case and example
Shailesh singh
 
2004 01 10 Chef Sa V01
2004 01 10 Chef Sa V012004 01 10 Chef Sa V01
2004 01 10 Chef Sa V01jiali zhang
 
REST Presentation
REST PresentationREST Presentation
REST Presentation
Alexandros Marinos
 
ANALYSIS OF ENTERPRISE SHARED RESOURCE INVOCATION SCHEME BASED ON HADOOP AND R
ANALYSIS OF ENTERPRISE SHARED RESOURCE INVOCATION SCHEME BASED ON HADOOP AND RANALYSIS OF ENTERPRISE SHARED RESOURCE INVOCATION SCHEME BASED ON HADOOP AND R
ANALYSIS OF ENTERPRISE SHARED RESOURCE INVOCATION SCHEME BASED ON HADOOP AND R
ijaia
 
Analysis of Enterprise Shared Resource Invocation Scheme based on Hadoop and R
Analysis of Enterprise Shared Resource Invocation Scheme based on Hadoop and R Analysis of Enterprise Shared Resource Invocation Scheme based on Hadoop and R
Analysis of Enterprise Shared Resource Invocation Scheme based on Hadoop and R
gerogepatton
 
FHIR intro and background at HL7 Germany 2014
FHIR intro and background at HL7 Germany 2014FHIR intro and background at HL7 Germany 2014
FHIR intro and background at HL7 Germany 2014
Ewout Kramer
 
Moving into API documentation writing
Moving into API documentation writingMoving into API documentation writing
Moving into API documentation writing
Ellis Pratt
 
A comparative study between commercial and open source discovery tools
A comparative study between commercial and open source discovery toolsA comparative study between commercial and open source discovery tools
A comparative study between commercial and open source discovery tools
SusantaSethi3
 
JAX-RS. Developing RESTful APIs with Java
JAX-RS. Developing RESTful APIs with JavaJAX-RS. Developing RESTful APIs with Java
JAX-RS. Developing RESTful APIs with Java
Jerry Kurian
 
Treinamento 1
Treinamento 1Treinamento 1
Treinamento 1
Carlos Melo
 
xAPI: The Landscape
xAPI: The LandscapexAPI: The Landscape
xAPI: The Landscape
Megan Bowe
 
xAPI Camp - Learning Solutions
xAPI Camp - Learning SolutionsxAPI Camp - Learning Solutions
xAPI Camp - Learning Solutions
Aaron Silvers
 

Similar to Restify Your Apps (20)

Modified REST Presentation
Modified REST PresentationModified REST Presentation
Modified REST Presentation
 
O reilly sacon2018nyc - restful api design - master - v1.0
O reilly sacon2018nyc - restful api design - master - v1.0O reilly sacon2018nyc - restful api design - master - v1.0
O reilly sacon2018nyc - restful api design - master - v1.0
 
Building Valuable Restful APIs - HRPHP 2015
Building Valuable Restful APIs - HRPHP 2015Building Valuable Restful APIs - HRPHP 2015
Building Valuable Restful APIs - HRPHP 2015
 
Restful Best Practices
Restful Best PracticesRestful Best Practices
Restful Best Practices
 
Api best practices
Api best practicesApi best practices
Api best practices
 
REST Architecture with use case and example
REST Architecture with use case and exampleREST Architecture with use case and example
REST Architecture with use case and example
 
REST Architecture with use case and example
REST Architecture with use case and exampleREST Architecture with use case and example
REST Architecture with use case and example
 
2004 01 10 Chef Sa V01
2004 01 10 Chef Sa V012004 01 10 Chef Sa V01
2004 01 10 Chef Sa V01
 
REST Presentation
REST PresentationREST Presentation
REST Presentation
 
Rest and Rails
Rest and RailsRest and Rails
Rest and Rails
 
ANALYSIS OF ENTERPRISE SHARED RESOURCE INVOCATION SCHEME BASED ON HADOOP AND R
ANALYSIS OF ENTERPRISE SHARED RESOURCE INVOCATION SCHEME BASED ON HADOOP AND RANALYSIS OF ENTERPRISE SHARED RESOURCE INVOCATION SCHEME BASED ON HADOOP AND R
ANALYSIS OF ENTERPRISE SHARED RESOURCE INVOCATION SCHEME BASED ON HADOOP AND R
 
Analysis of Enterprise Shared Resource Invocation Scheme based on Hadoop and R
Analysis of Enterprise Shared Resource Invocation Scheme based on Hadoop and R Analysis of Enterprise Shared Resource Invocation Scheme based on Hadoop and R
Analysis of Enterprise Shared Resource Invocation Scheme based on Hadoop and R
 
ReSTful API Final
ReSTful API FinalReSTful API Final
ReSTful API Final
 
FHIR intro and background at HL7 Germany 2014
FHIR intro and background at HL7 Germany 2014FHIR intro and background at HL7 Germany 2014
FHIR intro and background at HL7 Germany 2014
 
Moving into API documentation writing
Moving into API documentation writingMoving into API documentation writing
Moving into API documentation writing
 
A comparative study between commercial and open source discovery tools
A comparative study between commercial and open source discovery toolsA comparative study between commercial and open source discovery tools
A comparative study between commercial and open source discovery tools
 
JAX-RS. Developing RESTful APIs with Java
JAX-RS. Developing RESTful APIs with JavaJAX-RS. Developing RESTful APIs with Java
JAX-RS. Developing RESTful APIs with Java
 
Treinamento 1
Treinamento 1Treinamento 1
Treinamento 1
 
xAPI: The Landscape
xAPI: The LandscapexAPI: The Landscape
xAPI: The Landscape
 
xAPI Camp - Learning Solutions
xAPI Camp - Learning SolutionsxAPI Camp - Learning Solutions
xAPI Camp - Learning Solutions
 

More from befreax

Suricate
SuricateSuricate
Suricate
befreax
 
OCCI Specification Walkthrough
OCCI Specification WalkthroughOCCI Specification Walkthrough
OCCI Specification Walkthrough
befreax
 
Open Cloud Computing Interface - OCCI Status update
Open Cloud Computing Interface - OCCI Status updateOpen Cloud Computing Interface - OCCI Status update
Open Cloud Computing Interface - OCCI Status update
befreax
 
OCCI status update
OCCI status updateOCCI status update
OCCI status update
befreax
 
Cloud Comp Challenges
Cloud Comp ChallengesCloud Comp Challenges
Cloud Comp Challengesbefreax
 
CCA09 Cloud Computing Standards and OCCI
CCA09 Cloud Computing Standards and OCCICCA09 Cloud Computing Standards and OCCI
CCA09 Cloud Computing Standards and OCCI
befreax
 
OCCI Introduction
OCCI IntroductionOCCI Introduction
OCCI Introductionbefreax
 
Open Cloud Frameworks - Open Standards for the Cloud Community
Open Cloud Frameworks - Open Standards for the Cloud CommunityOpen Cloud Frameworks - Open Standards for the Cloud Community
Open Cloud Frameworks - Open Standards for the Cloud Community
befreax
 

More from befreax (8)

Suricate
SuricateSuricate
Suricate
 
OCCI Specification Walkthrough
OCCI Specification WalkthroughOCCI Specification Walkthrough
OCCI Specification Walkthrough
 
Open Cloud Computing Interface - OCCI Status update
Open Cloud Computing Interface - OCCI Status updateOpen Cloud Computing Interface - OCCI Status update
Open Cloud Computing Interface - OCCI Status update
 
OCCI status update
OCCI status updateOCCI status update
OCCI status update
 
Cloud Comp Challenges
Cloud Comp ChallengesCloud Comp Challenges
Cloud Comp Challenges
 
CCA09 Cloud Computing Standards and OCCI
CCA09 Cloud Computing Standards and OCCICCA09 Cloud Computing Standards and OCCI
CCA09 Cloud Computing Standards and OCCI
 
OCCI Introduction
OCCI IntroductionOCCI Introduction
OCCI Introduction
 
Open Cloud Frameworks - Open Standards for the Cloud Community
Open Cloud Frameworks - Open Standards for the Cloud CommunityOpen Cloud Frameworks - Open Standards for the Cloud Community
Open Cloud Frameworks - Open Standards for the Cloud Community
 

Recently uploaded

Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
mikeeftimakis1
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
Neo4j
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
Ralf Eggert
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
Pierluigi Pugliese
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
Alpen-Adria-Universität
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
Neo4j
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
Matthew Sinclair
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
DianaGray10
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
sonjaschweigert1
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
James Anderson
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Paige Cruz
 

Recently uploaded (20)

Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
 

Restify Your Apps

  • 1. RESTify your AppsThe pyOCCI module Thijs Metsch Senior Software Engineer Grid and Cloud Technology tmetsch@platform.com
  • 2. To RESTify your AppsorHow to Provide a Service to your customers {whatever}-Layer
  • 3. How? / What? (Resource-aaS) Create, Retrieve, Update and Delete Resources Your App What is a Resource? Resources Perform Actions and Link Resources Expose Resources across Boundaries
  • 4. What is a Resource? The URI (Resource representation)http://example.com/foo/bar can be:
  • 5. Pool of Resources What do you need? Resource How to identify, query, list, handle, link, group, perform actions and tag resources? Resource Resource Resource Resource Resource Resource
  • 6. What it is 1 It’s Capabilities 2 What it belongs to (grouping) 3 What Categories tells youabout a Resource:
  • 7. HTTP The only thing you need to do… Pool of Resources Resource pyOCCI module Resource Resource Resource HTTP Resource Resource Resource The ‘glue’ You App pyREST takes care of this
  • 8. You NEED to: Map you Resources to REST-Resources by implementing: Create, Retrieve, Update, Delete and Action routines
  • 9. You GET for free: A interface to your Resources, a way to identify a resources, manage resources, query capabilities, external RESTful interface, an integration point, a (Cloud) Service, Beer,… pyREST module deals with all the hard issues: HTTP, Content-Types, Security, Query interface, Renderings etc.
  • 10. Flexible/Modular/Clear Separation A Look inside of pyOCCI Backend HTTP HeaderRendering Your App Backend HTTP text/uri-list Rendering OCCI Model* Backend HTTP Handling HTTP text/plain Rendering Backend Handles HTTP verbs (POST,PUT,DELETE,GET) & stuff (REST, Security, etc.) HTTP text/html Rendering … Backend defines categories it can handle(Automatic selection) Map HTTP Data to OCCI Model(Automatic selection) * http://www.occi-wg.org
  • 11. Examples (1) Query int – shows what this Service can handle
  • 12. Examples (2) Create New… What is it? See Query int. Actions & Links Attributes
  • 13. Examples (3) Basically any Programming Language (Integration) CLI
  • 14. ? The pyOCCI module is part of pySSF: http://pyssf.sf.net Version: 0.2.19(This is pre- (Do not try this at home) -Alpha Software - also in pypi) LGPL Licensed © Platform Computing