Download - Write better code faster with rest data contracts api strat

Transcript
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