### A pact between Zoo App and Animal Service #### Requests from Zoo App to Animal Service * [A request for an alligator](#a_request_for_an_alligator_given_there_is_an_alligator_named_Mary) given there is an alligator named Mary * [A request for an alligator](#a_request_for_an_alligator_given_there_is_not_an_alligator_named_Mary) given there is not an alligator named Mary * [A request for an alligator](#a_request_for_an_alligator_given_an_error_occurs_retrieving_an_alligator) given an error occurs retrieving an alligator #### Interactions Given **there is an alligator named Mary**, upon receiving **a request for an alligator** from Zoo App, with ```json { "method": "get", "path": "/alligators/Mary", "headers": { "Accept": "application/json" } } ``` Animal Service will respond with: ```json { "status": 200, "headers": { "Content-Type": "application/json;charset=utf-8" }, "body": { "name": "Mary" } } ``` Given **there is not an alligator named Mary**, upon receiving **a request for an alligator** from Zoo App, with ```json { "method": "get", "path": "/alligators/Mary", "headers": { "Accept": "application/json" } } ``` Animal Service will respond with: ```json { "status": 404 } ``` Given **an error occurs retrieving an alligator**, upon receiving **a request for an alligator** from Zoo App, with ```json { "method": "get", "path": "/alligators/Mary", "headers": { "Accept": "application/json" } } ``` Animal Service will respond with: ```json { "status": 500, "headers": { "Content-Type": "application/json;charset=utf-8" }, "body": { "error": "Argh!!!" } } ```