Integrate with confidence
|
|
- Susanna Elliott
- 5 years ago
- Views:
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 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 informationPROCE55 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 informationPrivacy 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 informationBackends 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 informationARTICLE 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 informationBackends 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 informationTesting 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 informationSwift 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 informationtapi 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 informationArcher 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 informationUser 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 informationPeopleSoft 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 informationTriple 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 informationDon 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 informationCross-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 informationRAD 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 informationComposer 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 informationThe 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 informationLUCITY 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 informationDrexel Chatbot Requirements Specification
Drexel Chatbot Requirements Specification Hoa Vu Tom Amon Daniel Fitzick Aaron Campbell Nanxi Zhang Shishir
More informationNick 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 informationExtraHop 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 informationRESTful -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 informationBackend 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 informationShopitem 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 informationUsing 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 informationChat 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 informationOverview! 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 informationVoice-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 informationWhat 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 informationACCUZIP 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 informationRESTful 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 informationTRAINING 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 informationCMSC436: 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 informationOracle 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 informationWhat 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 informationBlack 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 informationHTTP 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 informationTeach 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 informationSuperLivePro 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 informationWorkshop: 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 informationEPHP 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 informationRESTFUL 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 informationLaravel: 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 informationC++ 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 informationAccessing 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 informationVision. 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 informationDeveloping 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 informationSurrogate 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 informationVS10 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 informationOpen 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 informationSOLUTION 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 informationWebTestClient. 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 informationEffective 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 informationUsing 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 informationvrealize 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 informationGearthonic 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 informationvrealize 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 informationLibelium 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 informationOFFLINE 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 informationCheckout 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 informationLoad 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 informationCommunicating 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 informationGMusicProcurator 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 informationCopyright 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 informationChapter 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 informationPython 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 informationFrom 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 informationCustom 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 informationHow 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 informationAdobe 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 informationTown 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 informationTrue 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 informationTopic 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 informationDeveloping 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 informationPass, 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 informationCSCE 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 informationRoadmap. 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 informationTesting 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 informationEmberJS 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 informationSession 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 informationHow 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 informationWearabouts 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 informationStep 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 informationThink 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 informationWe 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 informationVerifying 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 informationSmart 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 informationCMPE 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 informationSDMX 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 informationProgramming 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 informationTools 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 informationTenable.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 informationFile 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 informationUnderstanding 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 informationTrust. 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 informationCore 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 informationDevelop 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 informationBulkSMS 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 informationStream 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