Write better code faster with rest data contracts api strat

14
Track: Developers #CNX14 Write Better Code Faster with REST Data Contracts Kris Chant Sr. Technical Product Manager – API Salesforce ExactTarget Marketing Cloud @sprshrp

description

A suggestion to teams who build APIs to use tools like API Blueprint or RAML to use REST Data Contracts as part of their development process to build REST APIs more efficiently.

Transcript of Write better code faster with rest data contracts api strat

Page 1: Write better code faster with rest data contracts   api strat

Track: Developers

#CNX14

Write Better Code Faster with REST Data Contracts

Kris Chant

Sr. Technical Product Manager – API

Salesforce ExactTarget Marketing Cloud

@sprshrp

Page 2: Write better code faster with rest data contracts   api strat

Track: Developers

#CNX14

Visualize your API Development Process.

Page 3: Write better code faster with rest data contracts   api strat

Track: Developers

#CNX14

A Proposed REST API Development Process

Page 4: Write better code faster with rest data contracts   api strat

Track: Developers

#CNX14

An Actual REST API Development Process

Page 5: Write better code faster with rest data contracts   api strat

Track: Developers

#CNX14

REST API Development Process with Data Contracts

Page 6: Write better code faster with rest data contracts   api strat

Track: Developers

#CNX14

What is a REST Data Contract?

How will we write better

code faster?

How can I implement

them?

Goals – Presentation Overview

1 2 3

Page 7: Write better code faster with rest data contracts   api strat

Track: Developers

#CNX14

What is a REST API Data Contract?

• Not rocket science• Wireframe for API• Defines facts:

• URI• Request• Response

Page 8: Write better code faster with rest data contracts   api strat

Track: Developers

#CNX14

Simple Example

## Notes Collection [/notes]

### List all Notes [GET]

+ Response 200 (application/json)

[{

"id": 1, "title": "Jogging in park"

}, {

"id": 2, "title": "Pick-up posters from post-office"

}]

+ Response 401 (application/json)

{

“message” : “You’re not authorized.”

}

Page 9: Write better code faster with rest data contracts   api strat

Track: Developers

#CNX14

Advanced Example

## Note [/notes/{id}]A single Note object with all its details+ Parameters + id (required, number, `1`) ... Numeric `id` of the Note to perform action with. Has example value.

### Retrieve a Note [GET]+ Response 200 (application/json) + Header X-My-Header: The Value + Body { "id": 2, "title": "Pick-up posters from post-office" }

### Remove a Note [DELETE]+ Response 204

Page 10: Write better code faster with rest data contracts   api strat

Track: Developers

#CNX14

Write Better Code…

• Ask better questions, earlier• Greater understanding

Page 11: Write better code faster with rest data contracts   api strat

Track: Developers

#CNX14

Faster.

• It’s a Contract.• Eliminate Blockers• Tandem Development

Page 12: Write better code faster with rest data contracts   api strat

Track: Developers

#CNX14

How can I use them?

• Pre-requisite to development• Schedule time• API Design Tools

• API Blueprint - Apiary• RAML – MuleSoft

Page 13: Write better code faster with rest data contracts   api strat

Track: Developers

#CNX14

Example of our Workflow

Page 14: Write better code faster with rest data contracts   api strat

Track: Developers

#CNX14

Thank you!

Let’s continue the discussion on Twitter: @sprshrp