Integrate with confidence

Size: px
Start display at page:

Download "Integrate with confidence"

Transcription

1 Integrate with confidence Testing and verifying API integrations Andrew

2 Andrew

3 Pact?

4

5 Fat clients

6

7 The return of Fat

8

9 Connected = dependent

10 Dependencies on a service Web service HTTP Single page web app ios App Android app

11 Dependencies on a service 6 months later Web service Android app v2 Single page web app ios App v1 Android app v1 ios App v2 ios App v3

12 I want to change the API!

13 A shared language POST /the-goods

14 A shared language How do we even know we still speak the same language? POST /the-goods 404 didn t you get the memo?

15 How can we test this dependency?

16 A shared language How do we even know we still speak the same language? Manual testing? Integration tests? Unit tests?

17 Integration tests? How do we even know we still speak the same language?

18 Integration tests? How do we even know we still speak the same language? Complicated setup

19 Integration tests? How do we even know we still speak the same language? Complicated setup Slow

20 Integration tests? How do we even know we still speak the same language? Complicated setup Slow Fragile

21 Integration tests? How do we even know we still speak the same language? Complicated setup Slow Fragile Hard to diagnose errors

22 Integration tests? How do we even know we still speak the same language? Complicated setup Slow Fragile Hard to diagnose errors Need to run for each supported client version

23 Unit tests? How do we even know we still speak the same language? Test one small part of code e.g. A single method

24 Unit tests? How do we even know we still speak the same language? Test one small part of code e.g. A single method let cat = Cat(name: "Bob") expect(cat.tojson()).to(equal("{\"name\":\"bob\""))

25 Unit tests? How do we even know we still speak the same language? Simple setup

26 Unit tests? How do we even know we still speak the same language? Simple setup Fast feedback

27 Unit tests? How do we even know we still speak the same language? Simple setup Fast feedback Stable

28 Unit tests? How do we even know we still speak the same language? Simple setup Fast feedback Stable Easier to diagnose errors

29 Unit tests? How do we even know we still speak the same language? A B mock mock

30 Pact!

31 Pact How it works CA BP PactMockServer pact

32 Pact tests Unit test Fast feedback Stable Easier to diagnose errors

33 Pact tests Given some state exists When I Receive a GET request With these headers / query param Responds with 200 OK And some data

34 Pact tests Given User A exists When I Receive A GET request for A Responds with 200 OK And User A s details

35 Pact tests Given User A does not exist When I Receive A GET request for A Responds with 404 Not Found

36 A simple example - ios

37 An example - CatKit HTTP GET CatKit service

38 An example - CatKit HTTP Response { message : Meow!, status : happy

39 CatKitClient public class CatKitClient { private let baseurl: String public init(baseurl : String) { self.baseurl = baseurl public func feedme(feedmeresponse: (String) -> Void) { Alamofire.request(.GET, \(baseurl)/feed-me").responsejson { (result) in if let json = result as? Dictionary<String, String> { feedmeresponse(json["message"]!, json["status"]!)

40 CatKitClient public class CatKitClient { private let baseurl: String public init(baseurl : String) { self.baseurl = baseurl public func feedme(feedmeresponse: (String) -> Void) { Alamofire.request(.GET, \(baseurl)/feed-me").responsejson { (result) in if let json = result as? Dictionary<String, String> { feedmeresponse(json["message"]!, json["status"]!)

41 CatKitClient public class CatKitClient { private let baseurl: String public init(baseurl : String) { self.baseurl = baseurl public func feedme(feedmeresponse: (String, String) -> Void) { Alamofire.request(.GET, \(baseurl)/feed-me").responsejson { (result) in if let json = result as? Dictionary<String, String> { feedmeresponse(json["message"]!, json["status"]!)

42 CatKitClient public class CatKitClient { private let baseurl: String public init(baseurl : String) { self.baseurl = baseurl public func feedme(feedmeresponse: (String, String) -> Void) { Alamofire.request(.GET, \(baseurl)/feed-me").responsejson { (result) in if let json = result as? Dictionary<String, String> { feedmeresponse(json["message"]!, json["status"]!)

43 CatKitClient public class CatKitClient { private let baseurl: String public init(baseurl : String) { self.baseurl = baseurl public func feedme(feedmeresponse: (String, String) -> Void) { Alamofire.request(.GET, \(baseurl)/feed-me ).responsejson { (result) in if let json = result as? Dictionary<String, String> { feedmeresponse(json["message"]!, json["status"]!)

44 Writing the test

45 UnitTest The setup - request expectations catkitmockservice = MockService(provider: "CatKit Service", consumer: "CatKit ios App") catkitmockservice.uponreceiving("a request for feeding").withrequest( method:.get, path: /feed-me", headers: ["Accept": "application/json"]).willrespondwith( status: 200, headers: ["Content-Type": "application/json"], body: ["message": "Meow!", "status": "happy"])

46 UnitTest The setup - request expectations catkitmockservice = MockService(provider: "CatKit Service", consumer: "CatKit ios App") catkitmockservice.uponreceiving("a request for feeding").withrequest( method:.get, path: /feed-me", headers: ["Accept": "application/json"]).willrespondwith( status: 200, headers: ["Content-Type": "application/json"], body: ["message": "Meow!", "status": "happy"])

47 UnitTest The setup - request expectations catkitmockservice = MockService(provider: "CatKit Service", consumer: "CatKit ios App") catkitmockservice.uponreceiving("a request for feeding").withrequest( method:.get, path: /feed-me", headers: ["Accept": "application/json"]).willrespondwith( status: 200, headers: ["Content-Type": "application/json"], body: ["message": "Meow!", "status": "happy"])

48 UnitTest Execute client code catkitclient = CatKitClient(baseUrl: catkitmockservice!.baseurl) catkitmockservice.run { (testcomplete) -> Void in catkitclient.feedme { (message, status) -> Void in expect(status).to(equal("happy")) expect(message).to(equal("meow!")) testcomplete()

49 UnitTest Execute client code catkitclient = CatKitClient(baseUrl: catkitmockservice!.baseurl) catkitmockservice.run { (testcomplete) -> Void in catkitclient.feedme { (message, status) -> Void in expect(status).to(equal("happy")) expect(message).to(equal("meow!")) testcomplete()

50 UnitTest Execute client code catkitclient = CatKitClient(baseUrl: catkitmockservice!.baseurl) catkitmockservice.run { (testcomplete) -> Void in catkitclient.feedme { (message, status) -> Void in expect(status).to(equal("happy")) expect(message).to(equal("meow!")) testcomplete()

51 UnitTest Assert response is processed correctly catkitclient = CatKitClient(baseUrl: catkitmockservice!.baseurl) catkitmockservice.run { (testcomplete) -> Void in catkitclient.feedme { (message, status) -> Void in expect(status).to(equal("happy")) expect(message).to(equal("meow!")) testcomplete()

52 UnitTest Assert response is processed correctly catkitclient = CatKitClient(baseUrl: catkitmockservice!.baseurl) catkitmockservice.run { (testcomplete) -> Void in catkitclient.feedme { (message, status) -> Void in expect(status).to(equal("happy")) expect(message).to(equal("meow!")) testcomplete()

53 { "consumer": { "name": "CatKit ios App", "provider": { "name": "CatKit Service", "interactions": [ { "description": "a request for feeding", "request": { "method": "get", "path": /feed-me, "headers": { "Accept": "application/json", "response": { "status": 200, "headers": { "Content-Type": "application/json", "body": { "message": Meow!, status : happy ], "metadata": { "pactspecificationversion": "1.0.0"

54 Testing against the server

55 Service verification i.e. verify we speak the same language Pact.service_provider "CatKit Service" do end honours_pact_with 'CatKit ios App' do pact_uri './pacts/ios-app/catkit_ios_app-catkit_service-v1.0.json' end

56 Service verification i.e. verify we speak the same language Pact.service_provider "CatKit Service" do end honours_pact_with 'CatKit ios App' do pact_uri './pacts/ios-app/catkit_ios_app-catkit_service-v1.0.json' end

57 Service verification i.e. verify we speak the same language catkit-server (master) $ rake pact:verify Reading pact at./pacts/ios-app/catkit_ios_app-catkit_service-v1.0.json Verifying a pact between CatKit ios App and CatKit Service A request for feeding with GET /feed-me returns a response which has status code 200 (FAILED - 1) has a matching body (FAILED - 2) includes headers "Content-Type" with value "application/json" (FAILED - 3)

58 Service verification i.e. verify we speak the same language catkit-server (master) $ rake pact:verify Reading pact at./pacts/ios-app/catkit_ios_app-catkit_service-v1.0.json Verifying a pact between CatKit ios App and CatKit Service A request for feeding with GET /feed-me returns a response which has status code 200 has a matching body includes headers "Content-Type" with value "application/json"

59

60 Some time in the future Fail - contract broken catkit-server (master) $ rake pact:verify Reading pact at./pacts/ios-app/catkit_ios_app-catkit_service-v1.0.json Verifying a pact between CatKit ios App and CatKit Service A request for feeding with GET /feedme returns a response which has status code 200 has a matching body (FAILED - 1) includes headers "Content-Type" with value "application/json"

61 Some time in the future Fail - contract broken -{ - "message": Meow!, - status" : "happy" - +[ + { + "message": Meow!" + "status": "happy" + +]

62 API changes can quickly be verified against each client we have a pact contract file for

63 Remember this hairy situation? Web service Android app v2 Single page web app ios App v1 Android app v1 ios App v2 ios App v3

64 Using Pact, we can create

65 Using Pact, we can create a repository of API usage

66 Using Pact, we can create a repository of API usage for each client

67 Using Pact, we can create a repository of API usage for each client over time

68 Repository of API usage Web service Android app v2 android-v2.0.json Single page web app js-v1.0.json ios App v1 ios-v1.0.json Android app v1 android-v1.0.json ios App v2 ios App v3 ios-v2.0.json ios-v3.0.json

69 Pact broker

70 Pact broker

71 Pact broker

72 Pact verification Ruby JVM Javascript Go.NET

73 ? Questions

74 Pact! github.com/dius/pact-consumer-swift github.com/dius/pact-jvm github.com/andrewspinks/pact-mobile-preso Andrew Spinks

Consumer Driven Contract Testing with Pact and Docker. By Harry

Consumer Driven Contract Testing with Pact and Docker. By Harry Consumer Driven Contract Testing with Pact and Docker By Harry Winser @Hazz223 1 2 OR CONFIDENCE IN PRODUCTION In the beginning, there were monoliths Image from: http://odino.org/on-monoliths-service-oriented-architectures-and-microservices/

More information

PROCE55 Mobile: Web API App. Web API. https://www.rijksmuseum.nl/api/...

PROCE55 Mobile: Web API App. Web API. https://www.rijksmuseum.nl/api/... PROCE55 Mobile: Web API App PROCE55 Mobile with Test Web API App Web API App Example This example shows how to access a typical Web API using your mobile phone via Internet. The returned data is in JSON

More information

Privacy and Security in Online Social Networks Department of Computer Science and Engineering Indian Institute of Technology, Madras

Privacy and Security in Online Social Networks Department of Computer Science and Engineering Indian Institute of Technology, Madras Privacy and Security in Online Social Networks Department of Computer Science and Engineering Indian Institute of Technology, Madras Lecture 07 Tutorial 2 Part 1 Facebook API Hi everyone, welcome to the

More information

Backends and Databases. Dr. Sarah Abraham

Backends and Databases. Dr. Sarah Abraham Backends and Databases Dr. Sarah Abraham University of Texas at Austin CS329e Fall 2018 What is a Backend? Server and database external to the mobile device Located on remote servers set up by developers

More information

ARTICLE EXTRACTOR. Manual. Page 1 of 8. Manual. Tel & Fax: Web:

ARTICLE EXTRACTOR. Manual. Page 1 of 8. Manual. Tel & Fax: Web: Page 1 of 8 ARTICLE EXTRACTOR Sede opertiva: Piazza Vermicelli 87036 Rende (CS), Italy Page 2 of 8 TABLE OF CONTENTS 1 APP documentation... 3 1.1 HOW IT WORKS... 3 1.2 Input data... 5 1.3 Output data...

More information

Backends and Databases. Dr. Sarah Abraham

Backends and Databases. Dr. Sarah Abraham Backends and Databases Dr. Sarah Abraham University of Texas at Austin CS329e Fall 2016 What is a Backend? Server and database external to the mobile device Located on remote servers set up by developers

More information

Testing Javascript applications

Testing Javascript applications Testing Javascript applications Irina Dumitrascu ruby & cofeescript dira.ro, @dira_geek_girl 23 August 2012 Why? Well And Every time you hit refresh & click to test And Every time you hit refresh & click

More information

Swift 5, ABI Stability and

Swift 5, ABI Stability and Swift 5, ABI Stability and Concurrency @phillfarrugia Important Documents Concurrency Manifesto by Chris Lattner https: /gist.github.com/lattner/ 31ed37682ef1576b16bca1432ea9f782 Kicking off Concurrency

More information

tapi Documentation Release 0.1 Jimmy John

tapi Documentation Release 0.1 Jimmy John tapi Documentation Release 0.1 Jimmy John July 02, 2014 Contents 1 Why use TAPI? 3 2 Features 5 3 Dependencies 7 4 Installation 9 5 Quick Start 11 6 User Guide 13 6.1 Fundamentals...............................................

More information

Archer Documentation. Release 0.1. Praekelt Dev

Archer Documentation. Release 0.1. Praekelt Dev Archer Documentation Release 0.1 Praekelt Dev February 12, 2014 Contents 1 User Service 3 1.1 Installation................................................ 3 1.2 API....................................................

More information

User Group Resource Operations

User Group Resource Operations CHAPTER 5 A Cisco WebEx Social user group is an arbitrary collection of users that a system administrator creates. Typically, users who are in a user group have common interests, goals, or responsibilities.

More information

PeopleSoft Integration Tools II Rel 8.53

PeopleSoft Integration Tools II Rel 8.53 PeopleSoft Integration Tools II Rel 8.53 Duration: 4 Days What you will learn PeopleSoft Integration Tools II expands on the skills acquired in PeopleSoft Integration Tools I. In this 4-day course, you

More information

Triple R Riak, Redis and RabbitMQ at XING

Triple R Riak, Redis and RabbitMQ at XING Triple R Riak, Redis and RabbitMQ at XING Dr. Stefan Kaes, Sebastian Röbke NoSQL matters Cologne, April 27, 2013 ActivityStream Intro 3 Types of Feeds News Feed Me Feed Company Feed Activity Creation

More information

Don t give up on mocking

Don t give up on mocking Don t give up on mocking - Why do people give up? - Mocking: the big step from classic way of testing - Let s take a step back and don t give up! by Szczepan Faber (a certified mock tamer) Interaction

More information

Cross-Platform Data Models and API Using grpc

Cross-Platform Data Models and API Using grpc Cross-Platform Data Models and API Using grpc Sebastian Hagedorn, Felix Lamouroux Outline 1. Motivation & Goals 2. Choosing the Right Cross-Platform Technology 3. Introduction to Protocol Buffers and grpc

More information

RAD SERVER. Marco Cantu, Delphi Product Manager

RAD SERVER. Marco Cantu, Delphi Product Manager RAD SERVER Marco Cantu, Delphi Product Manager marco.cantu@embarcadero.com Twitter: @marcocantu AGENDA (INTRODUCTION) What is RAD Server Technical foundations of RAD Server JSON support Returning JSON

More information

Composer Help. Web Request Common Block

Composer Help. Web Request Common Block Composer Help Web Request Common Block 7/4/2018 Web Request Common Block Contents 1 Web Request Common Block 1.1 Name Property 1.2 Block Notes Property 1.3 Exceptions Property 1.4 Request Method Property

More information

The Future of the Realtime Web BETTER APIS WITH GRAPHQL. Josh

The Future of the Realtime Web BETTER APIS WITH GRAPHQL. Josh The Future of the Realtime Web BETTER APIS WITH GRAPHQL Josh Price @joshprice STEPPING STONES TO FP Language (Elixir) Strongly-Typed APIs (GraphQL) GRAPHQL WAS HERE? http://whiteafrican.com/2008/05/12/crossing-the-mapping-chasm/

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

Drexel Chatbot Requirements Specification

Drexel Chatbot Requirements Specification Drexel Chatbot Requirements Specification Hoa Vu Tom Amon Daniel Fitzick Aaron Campbell Nanxi Zhang Shishir

More information

Nick Terkay CSCI 7818 Web Services 11/16/2006

Nick Terkay CSCI 7818 Web Services 11/16/2006 Nick Terkay CSCI 7818 Web Services 11/16/2006 Ning? Start-up co-founded by Marc Andreeson, the co- founder of Netscape. October 2005 Ning is an online platform for painlessly creating web apps in a jiffy.

More information

ExtraHop 7.3 ExtraHop Trace REST API Guide

ExtraHop 7.3 ExtraHop Trace REST API Guide ExtraHop 7.3 ExtraHop Trace REST API Guide 2018 ExtraHop Networks, Inc. All rights reserved. This manual in whole or in part, may not be reproduced, translated, or reduced to any machinereadable form without

More information

RESTful -Webservices

RESTful -Webservices International Journal of Scientific Research in Computer Science, Engineering and Information Technology RESTful -Webservices Lalit Kumar 1, Dr. R. Chinnaiyan 2 2018 IJSRCSEIT Volume 3 Issue 4 ISSN : 2456-3307

More information

Backend Development. SWE 432, Fall 2017 Design and Implementation of Software for the Web

Backend Development. SWE 432, Fall 2017 Design and Implementation of Software for the Web Backend Development SWE 432, Fall 2017 Design and Implementation of Software for the Web Real World Example https://qz.com/1073221/the-hackers-who-broke-into-equifax-exploited-a-nine-year-old-security-flaw/

More information

Shopitem API A technical guide to the REST API for managing updates of shopitems

Shopitem API A technical guide to the REST API for managing updates of shopitems Shopitem API A technical guide to the REST API for managing updates of shopitems Date: 07-12-2018 Version: 3.4 1 Index Introduction and background... 3 1. How to get access to the API and its online docs...

More information

Using OAuth 2.0 to Access ionbiz APIs

Using OAuth 2.0 to Access ionbiz APIs Using OAuth 2.0 to Access ionbiz APIs ionbiz APIs use the OAuth 2.0 protocol for authentication and authorization. ionbiz supports common OAuth 2.0 scenarios such as those for web server, installed, and

More information

Chat Channels Via Kafka (with Grading Notes)

Chat Channels Via Kafka (with Grading Notes) SE424: Distributed Systems Assignment 2 Semester 1 5778 Due: 10 Jan 2017 Chat Channels Via Kafka (with Grading Notes) In this assignment, we ll take the work from the previous assignment on channelized

More information

Overview! Automated Certificate Management (ACME) Protocol! IP-NNI Task Force! Mary Barnes - iconectiv!

Overview! Automated Certificate Management (ACME) Protocol! IP-NNI Task Force! Mary Barnes - iconectiv! Overview! Automated Certificate Management (ACME) Protocol! IP-NNI Task Force! Mary Barnes - iconectiv! ACME Overview! ACME is a protocol being developed in IETF for Automated Certificate Management.!

More information

Voice-controlled Home Automation Using Watson, Raspberry Pi, and Openwhisk

Voice-controlled Home Automation Using Watson, Raspberry Pi, and Openwhisk Voice-controlled Home Automation Using Watson, Raspberry Pi, and Openwhisk Voice Enabled Assistants (Adoption) Voice Enabled Assistants (Usage) Voice Enabled Assistants (Workflow) Initialize Voice Recording

More information

What s New in Notifications

What s New in Notifications System Frameworks #WWDC15 What s New in Notifications Session 720 Michele Campeotto ios Notifications Gokul Thirumalai Apple Push Notification Service 2015 Apple Inc. All rights reserved. Redistribution

More information

ACCUZIP EDDM UI REST API CALLS. 100% Cloud Based EDDM List Creation. Abstract EDDM UI to select Carrier Route Boundaries throughout the United States

ACCUZIP EDDM UI REST API CALLS. 100% Cloud Based EDDM List Creation. Abstract EDDM UI to select Carrier Route Boundaries throughout the United States ACCUZIP EDDM UI REST API CALLS 100% Cloud Based EDDM List Creation Abstract EDDM UI to select Carrier Route Boundaries throughout the United States Steve Belmonte steve@accuzip.com AccuZIP EDDM Web Service

More information

RESTful API Design APIs your consumers will love

RESTful API Design APIs your consumers will love RESTful API Design APIs your consumers will love Matthias Biehl RESTful API Design Copyright 2016 by Matthias Biehl All rights reserved, including the right to reproduce this book or portions thereof in

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

CMSC436: Fall 2013 Week 4 Lab

CMSC436: Fall 2013 Week 4 Lab CMSC436: Fall 2013 Week 4 Lab Objectives: Familiarize yourself with Android Permission and with the Fragment class. Create simple applications using different Permissions and Fragments. Once you ve completed

More information

Oracle APEX 18.1 New Features

Oracle APEX 18.1 New Features Oracle APEX 18.1 New Features May, 2018 Safe Harbor Statement The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated

More information

What s New in CloudKit

What s New in CloudKit System Frameworks #WWDC15 What s New in CloudKit Session 704 Olivier Bonnet icloud Client Eric Krugler icloud Server 2015 Apple Inc. All rights reserved. Redistribution or public display not permitted

More information

Black Box DCX3000 / DCX1000 Using the API

Black Box DCX3000 / DCX1000 Using the API Black Box DCX3000 / DCX1000 Using the API updated 2/22/2017 This document will give you a brief overview of how to access the DCX3000 / DCX1000 API and how you can interact with it using an online tool.

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

Teach your (micro)services speak Protocol Buffers with grpc.

Teach your (micro)services speak Protocol Buffers with grpc. Teach your (micro)services speak Protocol Buffers with grpc. Mihai Iachimovschi @mishunika mihai.iachimovschi@gmail.com What s inside? What s inside? Message serialization and deserialization What s inside?

More information

SuperLivePro v2.0 Initial Setup Guide

SuperLivePro v2.0 Initial Setup Guide SuperLivePro v2.0 Initial Setup Guide After upgrading to the new SuperLivePro version 2.0, you ll notice it s been totally redesigned from the ground up. The first choice you have to make is fairly straightforward

More information

Workshop: Zerto REST API. Gijsbert Janssen van Doorn Darren Swift

Workshop: Zerto REST API. Gijsbert Janssen van Doorn Darren Swift 1 Workshop: Zerto REST API Gijsbert Janssen van Doorn Darren Swift 2 Agenda Authentication Bulk VRA Deployment Change VM Re-IP Settings BYO Recovery Plan 3 Authentication Creates a session ID (x-zerto-session)

More information

EPHP a tool for learning the basics of PHP development. Nick Whitelegg School of Media Arts and Technology Southampton Solent University

EPHP a tool for learning the basics of PHP development. Nick Whitelegg School of Media Arts and Technology Southampton Solent University EPHP a tool for learning the basics of PHP development Nick Whitelegg School of Media Arts and Technology Southampton Solent University My background Lecturer at Southampton Solent University since 2003

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

Laravel: From Apprentice To Artisan

Laravel: From Apprentice To Artisan Laravel: From Apprentice To Artisan Advanced Architecture With Laravel 4 Taylor Otwell This book is for sale at http://leanpub.com/laravel This version was published on 2013-09-04 This is a Leanpub book.

More information

C++ Developer Survey "Lite": C++ and Cloud

C++ Developer Survey Lite: C++ and Cloud Q1 This month we focus on how C++ is used, or could be better for use, in cloud-related applications and environments. In what (if any) kinds of cloud computing-related workloads do you use C++? (select

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

Vision. Speech. Language. Knowledge. Search. Content Moderator. Computer Vision. Emotion. Face. Video. Speaker Recognition. Custom Recognition

Vision. Speech. Language. Knowledge. Search. Content Moderator. Computer Vision. Emotion. Face. Video. Speaker Recognition. Custom Recognition Vision Computer Vision Content Moderator Emotion Face Video Speech Bing Speech Custom Recognition Speaker Recognition Language Bing Spell Check Language Understanding Linguistic Analysis Text Analytics

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

Surrogate Dependencies (in

Surrogate Dependencies (in Surrogate Dependencies (in NodeJS) @DinisCruz London, 29th Sep 2016 Me Developer for 25 years AppSec for 13 years Day jobs: Leader OWASP O2 Platform project Application Security Training JBI Training,

More information

VS10 WCF of Many Flavors When do I use which?

VS10 WCF of Many Flavors When do I use which? VS10 WCF of Many Flavors When do I use which? Brian Noyes Chief Architect, IDesign Inc (www.idesign.net) brian.noyes@idesign.net, @briannoyes About Brian Chief Architect IDesign Inc. (www.idesign.net)

More information

Open Source Library Developer & IT Pro

Open Source Library Developer & IT Pro Open Source Library Developer & IT Pro Databases LEV 5 00:00:00 NoSQL/MongoDB: Buildout to Going Live INT 5 02:15:11 NoSQL/MongoDB: Implementation of AngularJS INT 2 00:59:55 NoSQL: What is NoSQL INT 4

More information

SOLUTION BRIEF CA API MANAGEMENT. Enable and Protect Your Web Applications From OWASP Top Ten With CA API Management

SOLUTION BRIEF CA API MANAGEMENT. Enable and Protect Your Web Applications From OWASP Top Ten With CA API Management SOLUTION BRIEF CA API MANAGEMENT Enable and Protect Your Web Applications From OWASP Top Ten With CA API Management 2 SOLUTION BRIEF ENABLE AND PROTECT YOUR WEB APPLICATIONS WITH CA API MANAGEMENT ca.com

More information

WebTestClient. Version RELEASE

WebTestClient. Version RELEASE WebTestClient Version 5.0.9.RELEASE WebTestClient is a thin shell around WebClient, using it to perform requests and exposing a dedicated, fluent API for verifying responses. WebTestClient bind to a WebFlux

More information

Effective Testing with API Simulation and (Micro)Service Virtualisation

Effective Testing with API Simulation and (Micro)Service Virtualisation Effective Testing with API Simulation and (Micro)Service Virtualisation Andrew Morgan Daniel Bryant @Spectolabs 1 tl;dr Testing distributed systems is hard Many of us building distributed systems (microservices)

More information

Using a RESTful API to Connect to Remote I/Os

Using a RESTful API to Connect to Remote I/Os Using a RESTful API to Connect to Remote I/Os Contents Moxa Technical Support Team support@moxa.com 1. Introduction... 2 2. What is a RESTful API?... 2 3. Why using a RESTful API is easy for web service

More information

vrealize Log Insight Developer Resources

vrealize Log Insight Developer Resources vrealize Log Insight Developer Resources vrealize Log Insight 4.3 This document supports the version of each product listed and supports all subsequent versions until the document is replaced by a new

More information

Gearthonic Documentation

Gearthonic Documentation Gearthonic Documentation Release 0.2.0 Timo Steidle August 11, 2016 Contents 1 Quickstart 3 2 Contents: 5 2.1 Usage................................................... 5 2.2 API....................................................

More information

vrealize Log Insight Developer Resources Update 1 Modified on 03 SEP 2017 vrealize Log Insight 4.0

vrealize Log Insight Developer Resources Update 1 Modified on 03 SEP 2017 vrealize Log Insight 4.0 vrealize Log Insight Developer Resources Update 1 Modified on 03 SEP 2017 vrealize Log Insight 4.0 You can find the most up-to-date technical documentation on the VMware website at: https://docs.vmware.com/

More information

Libelium Cloud Hive. Technical Guide

Libelium Cloud Hive. Technical Guide Libelium Cloud Hive Technical Guide Index Document version: v7.0-12/2018 Libelium Comunicaciones Distribuidas S.L. INDEX 1. General and information... 4 1.1. Introduction...4 1.1.1. Overview...4 1.2. Data

More information

OFFLINE MODE OF ANDROID

OFFLINE MODE OF ANDROID OFFLINE MODE OF ANDROID APPS @Ajit5ingh ABOUT ME new Presenter( Ajit Singh, github.com/ajitsing, www.singhajit.com, @Ajit5ingh ) AGENDA Why offline mode? What it takes to build an offline mode Architecture

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

Load Testing with Gatling

Load Testing with Gatling Load Testing with Gatling Alan Baird QA Lead at LivingSocial @bluegrasscoder abaird@bairdsnet.net! https://goo.gl/ka0ppr How do you QA for: Black Friday Mother s Day deal New Feature rollout Load testing!

More information

Communicating with a Server

Communicating with a Server Communicating with a Server Client and Server Most mobile applications are no longer stand-alone Many of them now have a Cloud backend The Cloud Client-server communication Server Backend Database HTTP

More information

GMusicProcurator Documentation

GMusicProcurator Documentation GMusicProcurator Documentation Release 0.5.0 Mark Lee Sep 27, 2017 Contents 1 Features 3 2 Table of Contents 5 2.1 Installation................................................ 5 2.1.1 Requirements..........................................

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

Chapter 1 - Consuming REST Web Services in Angular

Chapter 1 - Consuming REST Web Services in Angular Chapter 1 - Consuming REST Web Services in Angular Objectives Key objectives of this chapter REST Overview Common Angular tasks for REST communication Using Angular to send various HTTP requests 1.1 REST

More information

Python Unit Testing and CI Workflow. Tim Scott, Python Meetup 11/07/17

Python Unit Testing and CI Workflow. Tim Scott, Python Meetup 11/07/17 Python Unit Testing and CI Workflow Tim Scott, Python Meetup 11/07/17 A Little About Me Started as a CoOp Engineer (2007-2008) and Design Engineer at Adtran (2010-2014) Currently work at Abaco Systems

More information

From time to time Google changes the way it does things, and old tutorials may not apply to some new procedures.

From time to time Google changes the way it does things, and old tutorials may not apply to some new procedures. From time to time Google changes the way it does things, and old tutorials may not apply to some new procedures. This is another tutorial which, in about 6 months, will probably be irrelevant. But until

More information

Custom Discovery Interface at the University of Michigan Library

Custom Discovery Interface at the University of Michigan Library University of Michigan Deep Blue deepblue.lib.umich.edu 2018-05-30 Custom Discovery Interface at the University of Michigan Library Varnum, Kenneth J. http://hdl.handle.net/2027.42/143857 Custom Discovery

More information

How to Route Internet Traffic between A Mobile Application and IoT Device?

How to Route Internet Traffic between A Mobile Application and IoT Device? Whitepaper How to Route Internet Traffic between A Mobile Application and IoT Device? Website: www.mobodexter.com www.paasmer.co 1 Table of Contents 1. Introduction 3 2. Approach: 1 Uses AWS IoT Setup

More information

Adobe Marketing Cloud Bloodhound for Mac 3.0

Adobe Marketing Cloud Bloodhound for Mac 3.0 Adobe Marketing Cloud Bloodhound for Mac 3.0 Contents Adobe Bloodhound for Mac 3.x for OSX...3 Getting Started...4 Processing Rules Mapping...6 Enable SSL...7 View Hits...8 Save Hits into a Test...9 Compare

More information

Town Crier. Authenticated Data Feeds For Smart Contracts. CS5437 Lecture by Kyle Croman and Fan Zhang Mar 18, 2016

Town Crier. Authenticated Data Feeds For Smart Contracts. CS5437 Lecture by Kyle Croman and Fan Zhang Mar 18, 2016 Town Crier Authenticated Data Feeds For Smart Contracts CS5437 Lecture by Kyle Croman and Fan Zhang Mar 18, 2016 Smart Contract Decentralized App: Programs are executed by all miners who reach consensus

More information

True Potential Client Site

True Potential Client Site True Potential Client Site New Login Process Including the iphone & ipad app process 1 P a g e Account Activation & New Login Process We re changing the way you log into your account on the True Potential

More information

Topic 15: Authentication

Topic 15: Authentication Topic 15: Authentication CITS3403 Agile Web Development Getting MEAN with Mongo, Express, Angular and Node, Chapter 11 Semester 1, 2018 Secure web apps Security is a primary concern for anyone developing

More information

Developing a Web Server Platform with SAPI support for AJAX RPC using JSON

Developing a Web Server Platform with SAPI support for AJAX RPC using JSON 94 Developing a Web Server Platform with SAPI support for AJAX RPC using JSON Assist. Iulian ILIE-NEMEDI Informatics in Economy Department, Academy of Economic Studies, Bucharest Writing a custom web server

More information

Pass, No Record: An Android Password Manager

Pass, No Record: An Android Password Manager Pass, No Record: An Android Password Manager Alex Konradi, Samuel Yeom December 4, 2015 Abstract Pass, No Record is an Android password manager that allows users to securely retrieve passwords from a server

More information

CSCE 120: Learning To Code

CSCE 120: Learning To Code CSCE 120: Learning To Code Module 11.0: Consuming Data I Introduction to Ajax This module is designed to familiarize you with web services and web APIs and how to connect to such services and consume and

More information

Roadmap. Mike Chtchelkonogov Founder & Chief Technology Officer Acumatica

Roadmap. Mike Chtchelkonogov Founder & Chief Technology Officer Acumatica Roadmap Mike Chtchelkonogov Founder & Chief Technology Officer Acumatica mik@acumatica.com Andrew Boulanov Head of Platform Development Acumatica aboulanov@acumatica.com Acumatica xrp Priorities Platform

More information

Testing Your Android Applications

Testing Your Android Applications Testing Your Android Applications Alexander Nelson November 17th, 2017 University of Arkansas - Department of Computer Science and Computer Engineering The Problem Testing Advantages Testing your application

More information

EmberJS A Fitting Face for a D8 Backend. Taylor Solomon

EmberJS A Fitting Face for a D8 Backend. Taylor Solomon EmberJS A Fitting Face for a D8 Backend Taylor Solomon taylor.solomon @jtsolomon http://interactivestrategies.com 2 Years Ago 2 Years Ago URL Ember Data assumes a few things. - Your API format is JSON

More information

Session 12. RESTful Services. Lecture Objectives

Session 12. RESTful Services. Lecture Objectives Session 12 RESTful Services 1 Lecture Objectives Understand the fundamental concepts of Web services Become familiar with JAX-RS annotations Be able to build a simple Web service 2 10/21/2018 1 Reading

More information

How to find your IP address information

How to find your IP address information How to set up a VPN server on Windows 10 Source: https://pureinfotech.com/setup-vpn-server-windows-10/ Here are the step-by-step instructions to set up a VPN server using the built-in Incoming Connection

More information

Wearabouts API Reference

Wearabouts API Reference Wearabouts API Reference Accuware Wearabouts exposes a RESTful web API that can be used to access and manipulate the state of set of resources registered with a site. The list of resources and the supported

More information

Step 1: Setup a Gitlab account

Step 1: Setup a Gitlab account Most of us agree that Continuous Integration (CI), Continuous Delivery (CD), cloud infrastructure, test automation, and configuration management make up the basics of devops. Depending on the scale of

More information

Think like an Elm developer

Think like an Elm developer Think like an Elm developer Piper Niehaus Denver, CO, USA Backpacker / skier Nonprofit board chair Software Engineer at Pivotal Pivotal Tracker team Elm in Production since 2016 Internal Products and Services

More information

We currently are able to offer three different action types:

We currently are able to offer three different action types: SMS Inbound Introduction SMS Inbound provides a simple to use interface for receiving inbound MMS messages. Inbound Message Actions Inbound Message Actions in SMS Inbound are things that our system can

More information

Verifying a Restore Repository

Verifying a Restore Repository Verifying a Restore Repository As a part of the Laserfiche backup verification process, you may be asked to verify the contents of a Laserfiche restore repository. Once a month, an archival copy of the

More information

Smart Bulk SMS & Voice SMS Marketing Script with 2-Way Messaging. Quick-Start Manual

Smart Bulk SMS & Voice SMS Marketing Script with 2-Way Messaging. Quick-Start Manual Mobiketa Smart Bulk SMS & Voice SMS Marketing Script with 2-Way Messaging Quick-Start Manual Overview Mobiketa Is a full-featured Bulk SMS and Voice SMS marketing script that gives you control over your

More information

CMPE 131 Software Engineering. Ruby on Rails Introduction

CMPE 131 Software Engineering. Ruby on Rails Introduction CMPE 131 Software Engineering September 5, 2017 Ruby on Rails Introduction Presented By Melvin Ch ng Agenda Native App vs Web App What is Ruby on Rails? MVC Architecture What can you do with Rails? What

More information

SDMX artefacts used to discover, query for, and visualise data

SDMX artefacts used to discover, query for, and visualise data SDMX artefacts used to discover, query for, and visualise data Chris Nelson Metadata Technology Ltd. 11-13 Sep 2013 SDMX Global Conference 2013 1 What are the Artefacts Structural Metadata Presentation

More information

Programming Functions. Debugging and testing

Programming Functions. Debugging and testing 1 Serverless architectures Programming Functions Going to production Introducing Azure Functions Debugging and testing Wrapup 2 3 Server-less architectures and Azure Functions There are no servers When

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

Tenable.io Container Security REST API. Last Revised: June 08, 2017

Tenable.io Container Security REST API. Last Revised: June 08, 2017 Tenable.io Container Security REST API Last Revised: June 08, 2017 Tenable.io Container Security API Tenable.io Container Security includes a number of APIs for interacting with the platform: Reports API

More information

File submissions to VINN and KRITA

File submissions to VINN and KRITA Date Page 2017-10-25 1 (10) Recipient: Respondents to VINN and KRITA File submissions to VINN and KRITA Summary This document briefly describes the VINN/KRITA solution for file submissions in the form

More information

Understanding RESTful APIs and documenting them with Swagger. Presented by: Tanya Perelmuter Date: 06/18/2018

Understanding RESTful APIs and documenting them with Swagger. Presented by: Tanya Perelmuter Date: 06/18/2018 Understanding RESTful APIs and documenting them with Swagger Presented by: Tanya Perelmuter Date: 06/18/2018 1 Part 1 Understanding RESTful APIs API types and definitions REST architecture and RESTful

More information

Trust. Trustworthiness Trusted. Trust: Who? What? When? Why? How?

Trust. Trustworthiness Trusted. Trust: Who? What? When? Why? How? Trust Trustworthiness Trusted Trust: Who? What? When? Why? How? 1 Certification / Assessment is a spectrum GAFAT Websites Apps Self Asserted Basic Check Self Certified Independent Verification Independently

More information

Core Technology Development Team Meeting

Core Technology Development Team Meeting Core Technology Development Team Meeting To hear the meeting, you must call in Toll-free phone number: 1-866-740-1260 Access Code: 2201876 For international call in numbers, please visit: https://www.readytalk.com/account-administration/international-numbers

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

BulkSMS Marketo Gateway

BulkSMS Marketo Gateway BulkSMS Marketo Gateway Integration Guide Page 1 Contents Introduction... 4 About the BulkSMS Gateway for Marketo... 4 Advanced Group Messaging Key Features... 4 Use any or all of our other products and

More information

Stream iphone Sensor Data to Adafruit IO

Stream iphone Sensor Data to Adafruit IO Stream iphone Sensor Data to Adafruit IO Created by Trevor Beaton Last updated on 2019-01-22 04:07:41 PM UTC Guide Contents Guide Contents Overview In this learn guide we will: Before we start... Downloading

More information