MTAT Enterprise System Integration

Size: px
Start display at page:

Download "MTAT Enterprise System Integration"

Transcription

1 MTAT Enterprise System Integration Lecture 7: Hypermedia REST Luciano García-Bañuelos University of Tartu

2 Richardson s Maturity Level 2 Also known as CRUD services Mul5ple URIs, mul5ple HTTP verbs, and HTTP Status Codes HTTP verbs GET, POST, PUT, DELETE HTTP Status Codes 1xx - Metadata 2xx Everything s fine 3xx Redirec5on 4xx Client did something wrong 5xx Server did a bad thing HYPERMEDIA REST LUCIANO GARCÍA- BAÑUELOS 1

3 Hypermedia within our application? HATEOAS: Hypermedia as the engine of applica5on state Roy Fielding s view: The simultaneous presenta0on of informa0on and controls such that the informa0on becomes the affordance through which the user obtains choices and selects ac0ons. A simpler wording: Include links into the resource representa0on. Let the user (human or program) con0nue the execu0on by following one of those links. HYPERMEDIA REST LUCIANO GARCÍA- BAÑUELOS 2

4 Example: PO creation (BuildIt) POST /pos h[p://ren5t.com/rest BuildIt <purchaseorder>! <start> </start>! <end> </end>! <plant>! <name>excavator</name>! <plant>! </purchaseorder>! RentIt HTTP/1.1 Loca5on: 201 Created /pos/1253 HYPERMEDIA REST LUCIANO GARCÍA- BAÑUELOS 3

5 Example: RentIt s view GET /pos/1253 h[p://ren5t.com/rest HTTP/ Ok RentIt <purchaseorder>! <start> </start>! <end> </end>! <cost> </cost>! <plant>! <sku>exc1253ab98</sku>! <name>excavator</name>! <plant>! <links>! <link rel="accept" href="/pos/1253/accept" method="post"/>! <link rel="reject" href="/pos/1253/accept" method="delete"/>! </links>! </purchaseorder>! HYPERMEDIA REST LUCIANO GARCÍA- BAÑUELOS 4

6 Our example application PurchaseOrderRESTController createpo() acceptpo() rejectpo() resubmitpo() requestpoupdate() acceptpoupdate() rejectpoupdate() POUpdateReqResource enddate PurchaseOrderResource startdate: Date enddate: Date total: Double PlantResource name: String description: String price: Double Plant <<Enumeration>> POStatus PENDING_ACCEPTANCE OPEN PENDING_UPDATE_ACCEPTANCE CLOSED REJECTED <<Enumeration>> URStatus OPEN ACCEPTED REJECTED Customer PurchaseOrder startdate: Date enddate: Date total: Double status: POStatus name: String description: String price: Double updates POUpdateRequest enddate: Date status: URStatus HYPERMEDIA REST LUCIANO GARCÍA- BAÑUELOS 5

7 Our example application PurchaseOrderRESTController createpo() acceptpo() rejectpo() resubmitpo() requestpoupdate() acceptpoupdate() rejectpoupdate() POUpdateReqResource enddate PurchaseOrderResource startdate: Date enddate: Date total: Double PlantResource name: String description: String price: Double PurchaseOrderService createpo() acceptpo() rejectpo() resubmitpo() requestpoupdate() acceptpoupdate() rejectpoupdate() HYPERMEDIA REST LUCIANO GARCÍA- BAÑUELOS 6

8 Resource life cycle: Purchase order PurchaseOrderService createpo() acceptpo() rejectpo() resubmitpo() requestpoupdate() acceptpoupdate() rejectpoupdate() createpo rejectpo pending confirmation rejected updatepo acceptpo acceptpoupdate open closepo closed rejectpoupdate requestpoupdate pending update HYPERMEDIA REST LUCIANO GARCÍA- BAÑUELOS 7

9 Hypermedia API rejectpo rejected createpo pending confirmation acceptpo open Verb URI template Rela?on Current state New state Comments POST /pos createpo Pending confirma5on POST /pos/{po.id/accept acceptpo Pending confirma5on DELETE /pos/{po.id/accept rejectpo Pending confirma5on Open Rejected Submit par5al representa5on Use empty body HYPERMEDIA REST LUCIANO GARCÍA- BAÑUELOS 8

10 Full Purchase Order API Method URI template Rela?on Current state New state Comments POST /pos createpo Pending confirma5on POST /pos/{po.id/accept acceptpo Pending confirma5on DELETE /pos/{po.id/accept rejectpo Pending confirma5on Open Rejected UPDATE /pos/{po.id updatepo Rejected Pending confirma5on DELETE /pos/{po.id closepo Open Closed POST /pos/{po.id/updates requestpoupdate Open Pending update POST DELETE /pos/{po.id/updates/ {up.id/accept /pos/{po.id/updates/ {up.id/accept acceptpoupdate rejectpoupdate Pending update Pending update Open Open Submit par5al representa5on Use empty body Submit new full representa5on Submit new end date Use empty body HYPERMEDIA REST LUCIANO GARCÍA- BAÑUELOS 9

11 Annotated State model DELETE /pos/{po.id/accept rejectpo rejected POST /pos createpo pending confirmation UPDATE /pos/{po.id updatepo POST /pos/{po.id/updates/{up.id/accept acceptpoupdate open POST /pos/{po.id/accept acceptpo DELETE /pos/{po.id closepo closed DELETE /pos/{po.id/updates/{up.id/accept rejectpoupdate POST /pos/{po.id/updates requestpoupdate pending update HYPERMEDIA REST LUCIANO GARCÍA- BAÑUELOS 10

12 Annotated State model Events produced by BuildIt DELETE /pos/{po.id/accept rejectpo rejected POST /pos createpo pending confirmation UPDATE /pos/{po.id updatepo POST /pos/{po.id/updates/{up.id/accept acceptpoupdate open POST /pos/{po.id/accept acceptpo DELETE /pos/{po.id closepo closed DELETE /pos/{po.id/updates/{up.id/accept rejectpoupdate POST /pos/{po.id/updates requestpoupdate pending update HYPERMEDIA REST LUCIANO GARCÍA- BAÑUELOS 11

13 A look at the business logic layer REST LUCIANO GARCÍA- BAÑUELOS 12

14 Purchase Order: Service public class PurchaseOrderService PlantRepository plantrep; public void createpo(purchaseorder po) throws PlantUnavailableException { DateTime startdate = new DateTime(po.getStartDate()); DateTime enddate = new DateTime(po.getEndDate()); int days = Days.daysBetween(startDate, enddate).getdays(); String plname = po.getplant().getname(); List<Plant> plants = plantrep.findbynameandavailability(plname, startdate, enddate); if (plants.isempty()) throw new PlantUnavailableException("The requested plant is not available"); po.settotal(days * plants.get(0).getprice()); po.setplant(plants.get(0)); po.persist(); Package: ~.services HYPERMEDIA REST LUCIANO GARCÍA- BAÑUELOS 13

15 Implementing the Hypermedia API REST LUCIANO GARCÍA- BAÑUELOS 14

16 Changes on public class Plant { private String name; private String description; private Double price; Package: ~.models In this case, we will use the library spring- hateoas. However, the classes required and their implementa5on are quite similar to those in our previous version. Note that we will use JSON as the public class PlantResource extends ResourceSupport { private String name; private String description; private Double price; Package: ~.integra5on.dto Maven dependency Group id: org.springframework.hateoas Ar5fact id: spring- hateoas Version: RELEASE REST LUCIANO GARCÍA- BAÑUELOS 15

17 Resource assembler public class PlantResourceAssembler extends ResourceAssemblerSupport<Plant, PlantResource> { public PlantResourceAssembler() { super(plantrestcontroller.class, public PlantResource toresource(plant plant) { PlantResource resource; resource = createresourcewithid(plant.getid(), plant); resource.setname(plant.getname()); resource.setdescription(plant.getdescription()); resource.setprice(plant.getprice()); return resource; HYPERMEDIA REST LUCIANO GARCÍA- BAÑUELOS 16

18 REST service public class PurchaseOrderRESTController PurchaseOrderService = RequestMethod.POST, value = "") public ResponseEntity<PurchaseOrderResource> createpo(@requestbody PurchaseOrder po) throws PlantUnavailableException { po.setstatus(postatus.pending_confirmation); service.createpo(po); HttpHeaders headers = new HttpHeaders(); URI uri = linkto(purchaseorderrestcontroller.class).slash(po.getid()).touri(); headers.setlocation(uri); PurchaseOrderResource pors = assembler.toresource(po); ResponseEntity<PurchaseOrderResource> response; response = new ResponseEntity<>(poRs, headers, HttpStatus.CREATED); return response; HYPERMEDIA REST LUCIANO GARCÍA- BAÑUELOS 17

19 REST service public class PurchaseOrderRESTController = RequestMethod.GET, value = "{id") public ResponseEntity<PurchaseOrderResource> getpo(@pathvariable Long id) { PurchaseOrder po = PurchaseOrder.findPurchaseOrder(id); PurchaseOrderResourceAssembler assembler = new PurchaseOrderResourceAssembler(); PurchaseOrderResource resource = assembler.toresource(po); switch (po.getstatus()) { case PENDING_CONFIRMATION: Method _acceptpo = PurchaseOrderRESTController.class.getMethod("acceptPO", Long.class); String acceptlink = linkto(_acceptpo, po.getid()).touri().tostring(); resource.add(new ExtendedLink(acceptLink, "acceptpo", "POST")); Method _rejectpo = PurchaseOrderRESTController.class.getMethod("rejectPO", Long.class); String rejectlink = linkto(_rejectpo, po.getid()).touri().tostring(); resource.add(new ExtendedLink(rejectLink, "rejectpo", "DELETE")); break; default: break; ResponseEntity<PurchaseOrderResource> response; response = new ResponseEntity<>(resource, HttpStatus.OK); return response; HYPERMEDIA REST LUCIANO GARCÍA- BAÑUELOS 18

20 Exception handling HYPERMEDIA REST LUCIANO GARCÍA- BAÑUELOS 19

21 Example GET /pos/1253 h[p://ren5t.com/rest HTTP/ Ok <purchaseorder>...</purchaseorder>! HTTP/ Not found RentIt HTTP/ Unauthorized HTTP/ Internal Server Error HYPERMEDIA REST LUCIANO GARCÍA- BAÑUELOS 20

22 Exception handling & HTTP status codes 400 Bad Request The client has PUT or POST a resource representa5on that is in the right format, but contains invalid informa5on 401 Unauthorized Proper creden5als to operate on a resource were not provided Response WWW-Authenticate header contains the type of authen5ca5on the server expects Basic, digest, WSSE, etc. 403 Forbidden The client request is OK, but the server doesn t want to process it (e.g., Restricted by IP address) HYPERMEDIA REST LUCIANO GARCÍA- BAÑUELOS 21

23 Exception handling & HTTP status codes 404 Not Found The standard catch- all response 405 Method Not Allowed The resource does not support a given method. Use Allow header to list the verbs the resource understands (e.g., Allow: GET, POST, PUT) 409 Conflict Tried to change the state of the resource to something the server will not allow HYPERMEDIA REST LUCIANO GARCÍA- BAÑUELOS 22

24 Exception handling & HTTP status codes 406 Not Acceptable The server cannot reply with the representa5on requested by the client HTTP header Accept 415 Unsupported Media Type The server cannot consume the resource format used by the client HTTP header Content-type HYPERMEDIA REST LUCIANO GARCÍA- BAÑUELOS 23

25 Exception handling within our public class PurchaseOrderRESTController InvalidHirePeriodException.class) public ResponseEntity<String> handlebadrequest(exception ex) { return new ResponseEntity<>(ex.getMessage(), public ResponseEntity<String> handlenotfound(exception ex) { return new ResponseEntity<>(ex.getMessage(), HttpStatus.NOT_FOUND); HYPERMEDIA REST LUCIANO GARCÍA- BAÑUELOS 24

MTAT Enterprise System Integration

MTAT Enterprise System Integration MTAT.03.229 Enterprise System Integration Lecture 6: Hypermedia REST Luciano García- Bañuelos University of Tartu Richardson s Maturity Level 2 Also known as CRUD services Multiple URIs, multiple HTTP

More information

Overview of last week

Overview of last week Overview of last week PODTO PlantDTO SalesController SalesService Application Web UI adapter PurchaseOrder OrdersRepository Domain model JPA adapter Plant PlantRepository DDD & DATA ACCESS LUCIANO GARCÍA-BAÑUELOS

More information

MTAT Enterprise System Integration

MTAT Enterprise System Integration MTAT.03.229 Enterprise System Integration Lecture 3: Services and Presentation layer Luciano García-Bañuelos University of Tartu Hexagonal architecture Last week: Domain model Structural patterns: Entities,

More information

MTAT Enterprise System Integration

MTAT Enterprise System Integration MTAT.03.229 Enterprise System Integration Lecture 4: Presentation Layer Luciano García-Bañuelos University of Tartu The picture Enterprise sozware Presenta(on Controller Applica4on logic Model Data access

More information

Model driven engineering of Hypermedia REST applications

Model driven engineering of Hypermedia REST applications UNIVERSITY OF TARTU Institute of Computer Science Software Engineering Curriculum Vishal Desai Model driven engineering of Hypermedia REST applications Master s Thesis (30 ECTS) Supervisor(s): Luciano

More information

MTAT Enterprise System Integration

MTAT Enterprise System Integration MTAT.03.229 Enterprise System Integration Lecture 3: Services and Presentation layer Luciano García-Bañuelos University of Tartu Hexagonal architecture Last week: Domain model Structural patterns: Entities,

More information

MTAT Enterprise System Integration

MTAT Enterprise System Integration MTAT.03.229 Enterprise System Integration Lecture 3: Data access Layer Luciano García-Bañuelos University of Tartu The picture Enterprise sosware Presenta@on Applica@on logic Data access layer Persistence

More information

INFO/CS 4302 Web Informa6on Systems

INFO/CS 4302 Web Informa6on Systems INFO/CS 4302 Web Informa6on Systems FT 2012 Week 7: RESTful Webservice APIs - Bernhard Haslhofer - 2 3 4 Source: hmp://www.blogperfume.com/new- 27- circular- social- media- icons- in- 3- sizes/ 5 Plan

More information

HTTP, REST Web Services

HTTP, REST Web Services HTTP, REST Web Services Martin Ledvinka martin.ledvinka@fel.cvut.cz Winter Term 2018 Martin Ledvinka (martin.ledvinka@fel.cvut.cz) HTTP, REST Web Services Winter Term 2018 1 / 36 Contents 1 HTTP 2 RESTful

More information

The picture. Security is a cri,cal concern to take into account during the development of enterprise so8ware

The picture. Security is a cri,cal concern to take into account during the development of enterprise so8ware The picture Enterprise so8ware Presenta,on Presenta,on Integra,on layer Applica,on logic Applica,on logic Data access Data access Security is a cri,cal concern to take into account during the development

More information

REST AND AJAX. Introduction. Module 13

REST AND AJAX. Introduction. Module 13 Module 13 REST AND AJAX Introduction > Until now we have been building quite a classic web application: we send a request to the server, the server processes the request, and we render the result and show

More information

JVA-563. Developing RESTful Services in Java

JVA-563. Developing RESTful Services in Java JVA-563. Developing RESTful Services in Java Version 2.0.1 This course shows experienced Java programmers how to build RESTful web services using the Java API for RESTful Web Services, or JAX-RS. We develop

More information

RESTFUL WEB SERVICES - INTERVIEW QUESTIONS

RESTFUL WEB SERVICES - INTERVIEW QUESTIONS RESTFUL WEB SERVICES - INTERVIEW QUESTIONS http://www.tutorialspoint.com/restful/restful_interview_questions.htm Copyright tutorialspoint.com Dear readers, these RESTful Web services Interview Questions

More information

Reviewing the API Documentation

Reviewing the API Documentation About the Cisco APIC-EM API Documentation, page 1 Testing the Cisco APIC-EM APIs, page 6 About the Cisco APIC-EM API Documentation Cisco APIC-EM controller provides interactive, northbound Representational

More information

RESTful Services. Distributed Enabling Platform

RESTful Services. Distributed Enabling Platform RESTful Services 1 https://dev.twitter.com/docs/api 2 http://developer.linkedin.com/apis 3 http://docs.aws.amazon.com/amazons3/latest/api/apirest.html 4 Web Architectural Components 1. Identification:

More information

RESTful Web Services Part 1

RESTful Web Services Part 1 RESTful Web Services Part 1 Luciano García Bañuelos Institute of Computer Science About me Luciano García-Bañuelos E-mail: luciano.garcia@ut.ee Office: J.Liivi 2-311 Senior Researcher Software Engineering

More information

Header Status Codes Cheat Sheet

Header Status Codes Cheat Sheet Header Status Codes Cheat Sheet Thanks for downloading our header status codes cheat sheet! Below you ll find all the header status codes and their meanings. They are organized by sections, starting with

More information

Creating RESTful web services with Spring Boot

Creating RESTful web services with Spring Boot Creating RESTful web services with Spring Boot The Spring framework Free and open source Inversion of Control Container (IoC) Modules DI / AOP Data /Security Web MVC/ REST So much more +++ What is Spring

More information

RESTful Web Services. 20-Jan Gordon Dickens Chariot Solutions

RESTful Web Services. 20-Jan Gordon Dickens Chariot Solutions RESTful Web Services 20-Jan-2011 Gordon Dickens Chariot Solutions gdickens@chariotsolutions.com Instructor/Mentor at chariotsolutions.com/education Who Am I? Active Tweeter for Open Source Tech Topics

More information

JVA-117E. Developing RESTful Services with Spring

JVA-117E. Developing RESTful Services with Spring JVA-117E. Developing RESTful Services with Spring Version 4.1 This course enables the experienced Java developer to use the Spring MVC framework to create RESTful web services. We begin by developing fluency

More information

Web Services Week 10

Web Services Week 10 Web Services Week 10 Emrullah SONUÇ Department of Computer Engineering Karabuk University Fall 2017 1 Recap BPEL Process in Netbeans RESTful Web Services Introduction to Rest Api 2 Contents RESTful Web

More information

EMR web api documentation

EMR web api documentation Introduction EMR web api documentation This is the documentation of Medstreaming EMR Api. You will find all available Apis and the details of every api. Including its url, parameters, Description, Response

More information

Session 25. Spring Controller. Reading & Reference

Session 25. Spring Controller. Reading & Reference Session 25 Spring Controller 1 Reading Reading & Reference www.tutorialspoint.com/spring/spring_web_mvc_framework.htm https://springframework.guru/spring-requestmapping-annotation/ Reference Spring home

More information

Heartbeat API. Document revision 1.0 Date of Issue: 04 October 2018 Date of revision: 04 October Nick Palmer.

Heartbeat API. Document revision 1.0 Date of Issue: 04 October 2018 Date of revision: 04 October Nick Palmer. Heartbeat API Document revision 1.0 Date of Issue: 04 October 2018 Date of revision: 04 October 2018 Nick Palmer Product Manager Page 1 of 7 Table of Contents 1. Purpose... 3 2. Glossary of Terms... 3

More information

Introduc)on to Computer Networks

Introduc)on to Computer Networks Introduc)on to Computer Networks COSC 4377 Lecture 3 Spring 2012 January 25, 2012 Announcements Four HW0 s)ll missing HW1 due this week Start working on HW2 and HW3 Re- assess if you found HW0/HW1 challenging

More information

SIP Compliance APPENDIX

SIP Compliance APPENDIX APPENDIX E This appendix describes Cisco SIP proxy server (Cisco SPS) compliance with the Internet Engineering Task Force (IETF) definition of Session Initiation Protocol (SIP) as described in the following

More information

Developing RESTful Services Using JAX-RS

Developing RESTful Services Using JAX-RS Developing RESTful Services Using JAX-RS Bibhas Bhattacharya CTO, Web Age Solutions Inc. April 2012. Many Flavors of Services Web Services come in all shapes and sizes XML-based services (SOAP, XML-RPC,

More information

Cloudessa API Documentation Guide. Cloudessa, Inc East Bayshore Road, Suite 200 Palo Alto, CA, 94303

Cloudessa API Documentation Guide. Cloudessa, Inc East Bayshore Road, Suite 200 Palo Alto, CA, 94303 Cloudessa API Documentation Guide Cloudessa, Inc. 2225 East Bayshore Road, Suite 200 Palo Alto, CA, 94303 July, 2013 Cloudessa RADIUS API Cloudessa offers a powerful Application Program Interface (API)

More information

Caterpillar: A Blockchain-Based Business Process Management System

Caterpillar: A Blockchain-Based Business Process Management System Caterpillar: A Blockchain-Based Business Process Management System Orlenys López-Pintado 1 and Luciano García-Bañuelos 1 and Marlon Dumas 1 and Ingo Weber 2 1 University of Tartu, Estonia Orlenys.Lopez.Pintado@tudeng.ut.ee,

More information

How to... Use PO Convert

How to... Use PO Convert STEP 1 - Select My POs The My POs page gives you the ability to: 1) Manage Purchase Orders that have been delivered to Tungsten Network from your customer. Click My POs 2) Submit invoices/ credit notes:

More information

HTTP status codes. Setting status of an HTTPServletResponse

HTTP status codes. Setting status of an HTTPServletResponse HTTP status codes Setting status of an HTTPServletResponse What are HTTP status codes? The HTTP protocol standard includes three digit status codes to be included in the header of an HTTP response. There

More information

TAXII 2.0 Specification Pre Draft

TAXII 2.0 Specification Pre Draft TAXII 2.0 Specification Pre Draft Current Status/Intent This document serves to gain consensus on pre draft concepts of TAXII 2.0. Please feel free to poke holes and comment! Overview TAXII is an open

More information

PS/2 Web Services

PS/2 Web Services 703128 PS/2 Web Services REST Services Monday, 2015-01-12 Copyright 2014 STI INNSBRUCK www.sti-innsbruck.at Outline REST Services Task: Java API for RESTful Web Services (JAX-RS) REST Web Services design

More information

PHPKB API Reference Guide

PHPKB API Reference Guide PHPKB API Reference Guide KB Administrator Fri, Apr 9, 09 User Manual 96 0 This document provides details on how to use the API available in PHPKB knowledge base management software. It acts as a reference

More information

Variable Usage, Making HTTP requests, Excep:ons

Variable Usage, Making HTTP requests, Excep:ons Variable Usage, Making HTTP requests, Excep:ons 1 How hard was second code review assignment? A) Easy B) Moderate C) Challenging D) Unreasonable 2 How long did second assignment take? A) Less than 2 hours

More information

TRAINING GUIDE. Lucity Web Services APIs

TRAINING GUIDE. Lucity Web Services APIs TRAINING GUIDE Lucity Web Services APIs Lucity Web Services APIs Lucity offers several web service APIs. This guide covers the Lucity Citizen Portal API as well as the. Contents How it Works... 2 Basics...

More information

REST API s in a CA Plex context. API Design and Integration into CA Plex landscape

REST API s in a CA Plex context. API Design and Integration into CA Plex landscape REST API s in a CA Plex context API Design and Integration into CA Plex landscape Speaker Software Architect and Consultant at CM First AG, Switzerland since 2008 having 30+ years of experience with the

More information

Web API Best Practices

Web API Best Practices Web API Best Practices STEVE SMITH ARDALIS.COM @ARDALIS STEVE@DEVIQ.COM DEVIQ.COM Learn More After Today 1) DevIQ ASP.NET Core Quick Start http://aspnetcorequickstart.com DEVINTFALL17 20% OFF! 2) Microsoft

More information

Partner Web Services. GetOrderStatus Version 1 Service Manual

Partner Web Services. GetOrderStatus Version 1 Service Manual Partner Web Services GetOrderStatus Version 1 Service Manual Contents 1 Introduction... 4 1.1 Overview... 4 1.2 Supporting Resources... 4 2 Service Overview... 4 3 Service Endpoints... 5 4 Request/Response

More information

API Specification Doc

API Specification Doc API Specification Doc (SMS System Gateway) Version Date Description 1.0 01-Nov-2017 Initial draft 1.1 18-Feb-2018 Updated to include Delivery report call back options 1.2 10-Apr-2018 Appended API to include

More information

Introduction. Copyright 2018, Itesco AB.

Introduction. Copyright 2018, Itesco AB. icatch3 API Specification Introduction Quick Start Logging in, getting your templates list, logging out Doing Quick Search Creating a Private Prospects Setting template Posting Private Prospects query,

More information

PAYMENTADMIN API 1.1 SveaWebPay

PAYMENTADMIN API 1.1 SveaWebPay PAYMENTADMIN API 1.1 SveaWebPay 2 (22) PaymentAdmin API 1.1 Content Revisions... 4 Overview... 5 Testing... 5 Production... 5 Authentication... 6 Get order... 7 Get task... 8 Deliver order... 9 Cancel

More information

Other architectures are externally built or expanded

Other architectures are externally built or expanded RESTful interfaces http://rest.elkstein.org/ (but not Section 11) http://net.tutsplus.com/tutorials/other/a-beginners-introduction-to-http-and-rest/ and for a laugh (or cry) : http://www.looah.com/source/view/2284

More information

DDD & REST. Domain-Driven APIs for the web. Oliver Gierke. / olivergierke

DDD & REST. Domain-Driven APIs for the web. Oliver Gierke. / olivergierke DDD & REST Domain-Driven APIs for the web Oliver Gierke / olivergierke 2 Background 3 Spring Data REST Spring Data Spring HATEOAS Repositories & Aggregates Hypermedia for Spring MVC 4 REST CRUD via HTTP

More information

PUSH services. Document revision 1.0 Date of Issue: 04 October 2018 Date of revision: 04 October Nick Palmer.

PUSH services. Document revision 1.0 Date of Issue: 04 October 2018 Date of revision: 04 October Nick Palmer. PUSH services Document revision 1.0 Date of Issue: 04 October 2018 Date of revision: 04 October 2018 Nick Palmer Product Manager Page 1 of 8 Table of Contents 1. Purpose... 3 2. Glossary of Terms... 3

More information

Remedial Java - Excep0ons 3/09/17. (remedial) Java. Jars. Anastasia Bezerianos 1

Remedial Java - Excep0ons 3/09/17. (remedial) Java. Jars. Anastasia Bezerianos 1 (remedial) Java anastasia.bezerianos@lri.fr Jars Anastasia Bezerianos 1 Disk organiza0on of Packages! Packages are just directories! For example! class3.inheritancerpg is located in! \remedialjava\src\class3\inheritencerpg!

More information

Variable Usage, Making HTTP requests, Exceptions. Slides adapted from Craig Zilles

Variable Usage, Making HTTP requests, Exceptions. Slides adapted from Craig Zilles Variable Usage, Making HTTP requests, Exceptions Slides adapted from Craig Zilles 1 Client / Server Architecture Server maintains durable state Clients connect to server to access/modify state Server supports

More information

Creating SDK plugins

Creating SDK plugins Creating SDK plugins 1. Introduction... 3 2. Architecture... 4 3. SDK plugins... 5 4. Creating plugins from a template in Visual Studio... 6 5. Creating custom action... 9 6. Example of custom action...10

More information

REST. And now for something completely different. Mike amundsen.com

REST. And now for something completely different. Mike amundsen.com REST And now for something completely different Mike Amundsen @mamund amundsen.com Preliminaries Mike Amundsen Developer, Architect, Presenter Hypermedia Junkie I program the Internet Designing Hypermedia

More information

JSR 311: JAX-RS: The Java API for RESTful Web Services

JSR 311: JAX-RS: The Java API for RESTful Web Services JSR 311: JAX-RS: The Java API for RESTful Web Services Marc Hadley, Paul Sandoz, Roderico Cruz Sun Microsystems, Inc. http://jsr311.dev.java.net/ TS-6411 2007 JavaOne SM Conference Session TS-6411 Agenda

More information

Information About SIP Compliance with RFC 3261

Information About SIP Compliance with RFC 3261 APPENDIX A Information About SIP Compliance with RFC 3261 This appendix describes how the Cisco SIP IP phone complies with the IETF definition of SIP as described in RFC 3261. It has compliance information

More information

MTAT Enterprise System Integration

MTAT Enterprise System Integration MTAT.03.229 Enterprise System Integration Lecture 10: WSDL/SOAP Web services Luciano García-Bañuelos University of Tartu The picture Enterpriseso2ware Presenta,on Presenta,on Integra,onlayer Applica,onlogic

More information

Qliq Cloud API Guide

Qliq Cloud API Guide Qliq Cloud API Guide QliqSOFT provides Cloud API for third party applications to send Secure Messages to Qliq users. Following steps need to be performed prior to sending messages: 1. The Application provider

More information

JAX-RS. Sam Guinea

JAX-RS. Sam Guinea JAX-RS Sam Guinea guinea@elet.polimi.it http://servicetechnologies.wordpress.com/ JAX-RS Java API that provides support in creating services according to the REST architectural style. JAX-RS uses annotations

More information

Compliance with RFC 3261

Compliance with RFC 3261 APPENDIX A Compliance with RFC 3261 This appendix describes how the Cisco Unified IP Phone 7960G and 7940G complies with the IETF definition of SIP as described in RFC 3261. It contains compliance information

More information

Tools for Accessing REST APIs

Tools for Accessing REST APIs APPENDIX A Tools for Accessing REST APIs When you have to work in an agile development environment, you need to be able to quickly test your API. In this appendix, you will learn about open source REST

More information

LUCITY REST API INTRODUCTION AND CORE CONCEPTS

LUCITY REST API INTRODUCTION AND CORE CONCEPTS LUCITY REST API INTRODUCTION AND CORE CONCEPTS REST API OFFERINGS Lucity Citizen Portal REST API Lucity REST API Both products are included in our REST API Historically we also offered a COM API and a.net

More information

Develop Mobile Front Ends Using Mobile Application Framework A - 2

Develop Mobile Front Ends Using Mobile Application Framework A - 2 Develop Mobile Front Ends Using Mobile Application Framework A - 2 Develop Mobile Front Ends Using Mobile Application Framework A - 3 Develop Mobile Front Ends Using Mobile Application Framework A - 4

More information

Architecture of the World Wide Web Web Informa4on Systems. CS/INFO 431 January 30, 2008 Carl Lagoze Spring 2008

Architecture of the World Wide Web Web Informa4on Systems. CS/INFO 431 January 30, 2008 Carl Lagoze Spring 2008 Architecture of the World Wide Web Web Informa4on Systems CS/INFO 431 January 30, 2008 Carl Lagoze Spring 2008 Acknowledgments Erik Wilde UC Berkeley h@p://dret.net/lectures/infosys ws06/h@p Looking beyond

More information

Copyright 2014 Blue Net Corporation. All rights reserved

Copyright 2014 Blue Net Corporation. All rights reserved a) Abstract: REST is a framework built on the principle of today's World Wide Web. Yes it uses the principles of WWW in way it is a challenge to lay down a new architecture that is already widely deployed

More information

Integration Services 2014

Integration Services 2014 Integration Services 2014 Raitis Grinbergs and Dan Wyand EPiServer Commerce Development The Choice for Leaders in Digital Current Integration PIM DAM Catalog XML Media CMS Media Commerce Goals Improve

More information

Introduction to RESTful Web Services. Presented by Steve Ives

Introduction to RESTful Web Services. Presented by Steve Ives 1 Introduction to RESTful Web Services Presented by Steve Ives Introduction to RESTful Web Services What are web services? How are web services implemented? Why are web services used? Categories of web

More information

SYMFONY2 WEB FRAMEWORK

SYMFONY2 WEB FRAMEWORK 1 5828 Foundations of Software Engineering Spring 2012 SYMFONY2 WEB FRAMEWORK By Mazin Hakeem Khaled Alanezi 2 Agenda Introduction What is a Framework? Why Use a Framework? What is Symfony2? Symfony2 from

More information

KIWIRE 2.0 PMS API. Version (July 2017)

KIWIRE 2.0 PMS API. Version (July 2017) KIWIRE 2.0 PMS API Version 1.0.0 (July 2017) Proprietary Information Notice This document is proprietary to Synchroweb (M) Sdn. Bhd. By utilizing this document, the recipient agrees to avoid publication

More information

Checkout Service API User Guide

Checkout Service API User Guide MicroMacro Mobile Inc. Checkout Service API User Guide API Version 2.0 October 02, 2017 Version History Version UpdatedAt Note 1.0 February 19, 2016 The original Checkout Service API and documentation

More information

Software LEIC/LETI. Lecture 15

Software LEIC/LETI. Lecture 15 Software Engineering @ LEIC/LETI Lecture 15 Last Lecture Software Architecture Architectural Patterns Application Architectures Software Architecture in the Project Today Enterprise Application Architecture

More information

REST Services. Zaenal Akbar

REST Services. Zaenal Akbar PS/ Web Services REST Services Zaenal Akbar Friday, - - Outline REST Services Overview Principles Common Errors Exercise What is REST? Set of architectural principles used for design of distributed systems

More information

REST in a Nutshell: A Mini Guide for Python Developers

REST in a Nutshell: A Mini Guide for Python Developers REST in a Nutshell: A Mini Guide for Python Developers REST is essentially a set of useful conventions for structuring a web API. By "web API", I mean an API that you interact with over HTTP - making requests

More information

Coding Intro to APIs and REST

Coding Intro to APIs and REST DEVNET-3607 Coding 1001 - Intro to APIs and REST Matthew DeNapoli DevNet Developer Evangelist Cisco Spark How Questions? Use Cisco Spark to communicate with the speaker after the session 1. Find this session

More information

Digital Imaging and Communications in Medicine (DICOM) Supplement 194: RESTful Services for Non-Patient Instances

Digital Imaging and Communications in Medicine (DICOM) Supplement 194: RESTful Services for Non-Patient Instances 1/20/2016 3:37 PM Supplement XXX: Non-Patient Instances RESTful Service Page 1 5 10 Digital Imaging and Communications in Medicine (DICOM) Supplement 194: RESTful Services for Non-Patient Instances 15

More information

Mobile Computing. Logic and data sharing. REST style for web services. Operation verbs. RESTful Services

Mobile Computing. Logic and data sharing. REST style for web services. Operation verbs. RESTful Services Logic and data sharing Mobile Computing Interface Logic Services Logic Data Sync, Caches, Queues Data Mobile Client Server RESTful Services RESTful Services 2 REST style for web services REST Representational

More information

Recitation 3 Class and Objects

Recitation 3 Class and Objects 1.00/1.001 Introduction to Computers and Engineering Problem Solving Recitation 3 Class and Objects Spring 2012 1 Scope One method cannot see variables in another; Variables created inside a block: { exist

More information

RAD, Rules, and Compatibility: What's Coming in Kuali Rice 2.0

RAD, Rules, and Compatibility: What's Coming in Kuali Rice 2.0 software development simplified RAD, Rules, and Compatibility: What's Coming in Kuali Rice 2.0 Eric Westfall - Indiana University JASIG 2011 For those who don t know Kuali Rice consists of mul8ple sub-

More information

Better Translation Technology. XTM Connect for Drupal 8

Better Translation Technology. XTM Connect for Drupal 8 Better Translation Technology XTM Connect for Drupal 8 Documentation for XTM Connect for Drupal 8. Published by XTM International Ltd. Copyright XTM International Ltd. All rights reserved. No part of this

More information

Cloud Data Management System (CDMS)

Cloud Data Management System (CDMS) Cloud Management System (CMS) Wiqar Chaudry Solu9ons Engineer Senior Advisor CMS Overview he OpenStack cloud data management system features a canonical data modeling framework designed to broker context

More information

f5-icontrol-rest Documentation

f5-icontrol-rest Documentation f5-icontrol-rest Documentation Release 1.3.10 F5 Networks Aug 04, 2018 Contents 1 Overview 1 2 Installation 3 2.1 Using Pip................................................. 3 2.2 GitHub..................................................

More information

Week 3 Classes and Objects

Week 3 Classes and Objects Week 3 Classes and Objects written by Alexandros Evangelidis, adapted from J. Gardiner et al. 13 October 2015 1 Last Week Last week, we looked at some of the different types available in Java, and the

More information

Hypertext Transport Protocol

Hypertext Transport Protocol Hypertext Transport Protocol HTTP Hypertext Transport Protocol Language of the Web protocol used for communication between web browsers and web servers TCP port 80 HTTP - URLs URL Uniform Resource Locator

More information

OMF Documentation. Release 1.1-alpha1. OSIsoft, LLC

OMF Documentation. Release 1.1-alpha1. OSIsoft, LLC OMF Documentation Release 1.1-alpha1 OSIsoft, LLC Oct 03, 2018 Contents 1 v1.1 1 2 Overview 3 3 Contents 5 3.1 What s New............................................... 5 3.2 Headers..................................................

More information

04 Webservices. Web APIs REST Coulouris. Roy Fielding, Aphrodite, chp.9. Chp 5/6

04 Webservices. Web APIs REST Coulouris. Roy Fielding, Aphrodite, chp.9. Chp 5/6 04 Webservices Web APIs REST Coulouris chp.9 Roy Fielding, 2000 Chp 5/6 Aphrodite, 2002 http://www.xml.com/pub/a/2004/12/01/restful-web.html http://www.restapitutorial.com Webservice "A Web service is

More information

Stefan Tilkov innoq Deutschland GmbH REST + JSR 311 Java API for RESTful Web Services

Stefan Tilkov innoq Deutschland GmbH REST + JSR 311 Java API for RESTful Web Services Stefan Tilkov innoq Deutschland GmbH stefan.tilkov@innoq.com REST + JSR 311 Java API for RESTful Web Services Contents An Introduction to REST Why REST Matters REST And Web Services JSR 311 Intro Demo

More information

Error Transferring File Server Returned Http Response Code 407 For Url

Error Transferring File Server Returned Http Response Code 407 For Url Error Transferring File Server Returned Http Response Code 407 For Url HTTP 1.1 has a number of response codes which are sent from the server to inform Code 200 specifically means that a URL/URI points

More information

Accessing the Progress OpenEdge AppServer. From Progress Rollbase. Using Object Script

Accessing the Progress OpenEdge AppServer. From Progress Rollbase. Using Object Script Accessing the Progress OpenEdge AppServer From Progress Rollbase Using Object Script Introduction Progress Rollbase provides a simple way to create a web-based, multi-tenanted and customizable application

More information

Flexible EAI-Lösungen mit Glassfish

Flexible EAI-Lösungen mit Glassfish Flexible EAI-Lösungen mit Glassfish Praxisbeispiele und War Stories zu EAI-Pattern Alexander Heusingfeld, @goldstift Martin Huber, @waterback We take care of it - personally! EAI Pattern in 2013? EAI

More information

Canonical Identity Provider Documentation

Canonical Identity Provider Documentation Canonical Identity Provider Documentation Release Canonical Ltd. December 14, 2018 Contents 1 API 3 1.1 General considerations.......................................... 3 1.2 Rate limiting...............................................

More information

Nasuni Data API Nasuni Corporation Boston, MA

Nasuni Data API Nasuni Corporation Boston, MA Nasuni Corporation Boston, MA Introduction The Nasuni API has been available in the Nasuni Filer since September 2012 (version 4.0.1) and is in use by hundreds of mobile clients worldwide. Previously,

More information

Amazon Glacier. Developer Guide API Version

Amazon Glacier. Developer Guide API Version Amazon Glacier Developer Guide Amazon Glacier: Developer Guide Copyright 2018 Amazon Web Services, Inc. and/or its affiliates. All rights reserved. Amazon's trademarks and trade dress may not be used in

More information

Hypermedia Web API for enhanced Heterogeneous Missions Accessibility

Hypermedia Web API for enhanced Heterogeneous Missions Accessibility Hypermedia Web API for enhanced Heterogeneous Missions Accessibility Y. Coene, Spacebel s.a. Frascati, June 30, 2015 Page 1 Outline Architecture trends REST Hypermedia API Aspects of Hypermedia API REST:

More information

Technical Guide. REST API for Mobile Outbound SMS

Technical Guide. REST API for Mobile Outbound SMS Technical Guide REST API for Mobile Outbound SMS Munich +49 89 202 451 100 Singapore +65 6478 3020 London +44 207 436 0283 San Francisco +1 415 527 0903 sales@tyntec.com www.tyntec.com Table of Contents

More information

SOAP API. The correct URL has been hidden. Please contact your account manager for the full URL information.

SOAP API. The correct URL has been hidden. Please contact your account manager for the full URL information. SMS Help Guides TNZ Group Limited sales@tnz.co.nz +64 9 9293000 +64 9 522 8839 SOAP API SOAP is a simple way of sending SMS/TXT messages via the internet. It is a great solution for integration into existing

More information

COMPUTER NETWORKS AND COMMUNICATION PROTOCOLS. Web Access: HTTP Mehmet KORKMAZ

COMPUTER NETWORKS AND COMMUNICATION PROTOCOLS. Web Access: HTTP Mehmet KORKMAZ COMPUTER NETWORKS AND COMMUNICATION PROTOCOLS Web Access: HTTP 16501018 Mehmet KORKMAZ World Wide Web What is WWW? WWW = World Wide Web = Web!= Internet Internet is a global system of interconnected computer

More information

Re#ring Your Old Computer. Created by Sherry Surdam

Re#ring Your Old Computer. Created by Sherry Surdam Re#ring Your Old Computer Created by Sherry Surdam Did Pete Wood's informa#ve program on what to look for in a PC or laptop, inspire you to run right out for a new computer? No? Well, with Windows 7 on

More information

An ontology of resources for Linked Data

An ontology of resources for Linked Data An ontology of resources for Linked Data Harry Halpin and Valen8na Presu: LDOW @ WWW2009 Madrid, April 20th Outline Premises and background Proposal overview Some details of IRW ontology Simple applica8on

More information

ORACLE APPLICATION EXPRESS, ORACLE REST DATA SERVICES, & WEBLOGIC 12C AUTHOR: BRAD GIBSON SENIOR SOLUTIONS ARCHITECT ADVIZEX

ORACLE APPLICATION EXPRESS, ORACLE REST DATA SERVICES, & WEBLOGIC 12C AUTHOR: BRAD GIBSON SENIOR SOLUTIONS ARCHITECT ADVIZEX ORACLE APPLICATION EXPRESS, ORACLE REST DATA SERVICES, & WEBLOGIC 12C AUTHOR: BRAD GIBSON SENIOR SOLUTIONS ARCHITECT ADVIZEX AdvizeX Technologies - A Rolta Company 6/12/2015 1 AGENDA Introductions Test

More information

DRAFT COPY

DRAFT COPY Inter-Entity Payment Protocol (IPP) The Inter-Entity Payment Protocol (IPP) facilitates adhoc interactions between independent accounting systems on the web. It is a server-to-server protocol. 1 Brands,

More information

D, E I, J, K, L O, P, Q

D, E I, J, K, L O, P, Q Index A Application development Drupal CMS, 2 library, toolkits, and packages, 3 scratch CMS (see Content management system (CMS)) cost quality, 5 6 depression, 4 enterprise, 10 12 library, 5, 10 scale

More information

Partner Web Services. GetMyPrice Service Manual

Partner Web Services. GetMyPrice Service Manual Partner Web Services GetMyPrice Service Manual Contents 1 Introduction... 5 1.1 Overview... 5 1.2 Supporting Resources... 5 2 Service Overview... 5 2.1 Benefits of GetMyPrice Service... 6 3 Service Endpoints...

More information

Active Market API v2

Active Market API v2 Active Market API v2 Document Revision 1.0 Date of Issue: 10 May 2018 Date of revision: 10 May 2018 Nick Palmer Product Manager Page 1 of 18 Table of Contents 1. Purpose... 3 2. Glossary of Terms... 3

More information

Positive Pay Quick Start Guide

Positive Pay Quick Start Guide Positive Pay Quick Start Guide Welcome to Positive Pay With Positive Pay, you provide us with information about the checks you write and we compare that information against the physical checks when they

More information

SPRING MOCK TEST SPRING MOCK TEST I

SPRING MOCK TEST SPRING MOCK TEST I http://www.tutorialspoint.com SPRING MOCK TEST Copyright tutorialspoint.com This section presents you various set of Mock Tests related to Spring Framework. You can download these sample mock tests at

More information