Getting Started
Install Prerequisites
Start your installations before the presentation begins so that the dependencies are able to download before we start the workshop.
Install docker :
Mac:
https://docs.docker.com/docker-for-mac/install/
Window:
https://docs.docker.com/docker-for-windows/install/
Linux:
https://docs.docker.com/install/linux/docker-ce/ubuntu/
Pull docker images:
$ docker pull springcloud/spring-cloud-contract:2.1.1.RELEASE
$ docker pull springcloud/spring-cloud-contract-stub-runner:2.1.1.RELEASE
Install Node: https://nodejs.org/en/
Clone Repos:
$ git clone https://github.com/angularkc/contract-driven-development.git
$ git clone https://github.com/wkorando/produce-contracts.git
Client-Side Developers
From the root of contract-driven-development
run the following:
$ npm install
Server-Side Developers
From the root of contract-driven-development
run the following:
$ cd produce-service
$ ./mvnw package
Currently the contract of addProduce.yml
is always sending the same response, ignoring the contents of the request the client is sending. Spring Cloud Contract can allow contracts to be more dynamic, for example allow fields within the response to pull from the request. Let's update addProduce.yml
to do this.
Update POST contract to respond with request body
Every service is going to be composed of many different contracts. Defining how an API should respond to a given request. It's important that we not only define what happens for successful responses, but unsuccessful ones as well. Currently we have a contract findProduceByName.yml
that defines what happens when a client successful searches for a subset of produce. Let's write a contract for when a client sends an invalid search request that has special characters in it.
Last updated
Was this helpful?