Blogs

A new chapter on Youtube

2014 was an extremely busy year at Paypal: heading up the API Design team, in an effort to API-ify over 80% of the company’s capabilities. I only managed to get out three blog posts, all on http://APIUX.com. As I looked at revising my strategy for sharing with the community for 2015, I had to reflect on 2014. Public speaking: I attended 12 events, I think 10 of which I gave talks at.

Continue reading

BDD for APIs Talk at APIStrat SF 2013

I recently attended the API Strategy & Practices conference in San Francisco. I also attended earlier this year in New York, but this time I came as a speaker. I enjoyed the panel format in NYC so much, I decided I had to be a part of it. I wanted to bring something that I haven’t heard before at API-related conferences. I’ve blogged quite a bit in the past on the topic of BDD for APIs.

Continue reading

An Interview With Jason Harmon, API Architect @uShip

[Reposted from conquer.tech] One of the neat things about living in Austin is the tech people you get to meet. Some of the ones I have met along the way have been gracious enough to let me interview them. Today’s post is an interview I recently conducted with my friend Jason Harmon. He has always seemed to me to be one of the brightest guys I know when it comes to technologies.

Continue reading

Extend Your CRUD HTTP API With Sub-resources

When it’s time to build your web API, there’s often a tendency to build everything around data entities. CRUD-style APIs use GET/POST/PUT/DELETE to provide the same feel as SELECT/INSERT/UPDATE/DELETE in a traditional relational database. Once you work through these CRUD-based web API patterns for a while, you will find that it doesn’t always match up perfectly to your business needs. I’d like to introduce a design pattern which will add some flexibility to your CRUD-stye HTTP API, while maintaining clean semantics and easy usability.

Continue reading

REST Roadmap - API Hypermedia for Permissions Patterns

It’s been a while since my first post in the REST Roadmap series on RMM Level 2 / verbs / HTTP status codes. I’d like to continue moving up the RMM chain, looking at Hypermedia as the Level 3, according to Martin Fowler and Leon Richardson. In the spirit of pragmatism, I’d like to tune out a lot of the chatter about media types, link formats, and the like when it comes to hypermedia for the sake of this post.

Continue reading

API makers/consumers: Do you sometimes feel like no one really gets you?

I’ve found myself explaining to lots of people what it is that I do, in working with APIs. Sure, at the office or a conference, I feel understood. However in social settings or around family, I sometimes feel like people just think I’m making this stuff up. When I try to use acronym and industry jargon filled phrases, I often just get glazed over stares and slow head nodding. “I offer a series of integration points for mobile, web, and B2B web services consumers.

Continue reading

API Slides and Retros Collected From Twitter #apistrat #NYC 2013

I had a blast at the API Strategy and Practices Conference in NYC over the weekend. I learned things, I shared and socialized ideas, and was generally awed by the level of brainshare happening. In an effort to share this with folks who didn’t make it, I’ve collected all I could along the way, and I’m sharing it. Please send me anything I’ve missed, whether you presented it or just took better notes than me.

Continue reading

RESTful Patterns for the HEAD Verb

In the typical usage of HTTP, the GET and POST verbs seem to get the most mileage. I’ve previously covered some aspects of moving up the Richardson Maturity Model scale. Implementing the PUT and DELETE verbs is typically a step up to RMM Level 2. There are other HTTP verbs, outside of the ‘by the book’ RESTful patterns, which can prove very useful in certain situations. One of the easiest to implement verbs, with some great benefits in scaling terms, is the HEAD verb.

Continue reading

BDD / ATDD for your Agile REST API, part 2

Part 1: http://pragmaticapi.com/2013/01/12/bdd-atdd-for-your-agile-rest-api/ I recently covered how BDD principles can provide a great touch stone for acceptance testing in REST-based API platforms. In this brief followup, I’ll show how the Cucumber-JVM framework provides all of the same functionality that we saw in .NET’s SpecFlow, using the Groovy programming language. Code for this example can be found on Github. This should provide you with a working example of BDD testing the Twitter API using Cucumber-JVM, Gradle, and Groovy.

Continue reading

BDD / ATDD for your Agile REST API

In any system architecture, a multi-tiered testing strategy is critical. Much of this work is typically behind the scenes in development teams, often following TDD-oriented practices. In agile terms, stakeholders and product owners often never see or grasp what’s being tested. Within the unit testing and integration testing tiers, this tends to make sense. However Behavioral Driven Development (aka Acceptance Test Driven Development) begins with acceptance criteria definition and finishes with the acceptance of a story, providing engagement for all members of an agile team from start to finish.

Continue reading