DZone
Thanks for visiting DZone today,
Edit Profile
  • Manage Email Subscriptions
  • How to Post to DZone
  • Article Submission Guidelines
Sign Out View Profile
  • Post an Article
  • Manage My Drafts
Over 2 million developers have joined DZone.
Log In / Join
Refcards Trend Reports Events Over 2 million developers have joined DZone. Join Today! Thanks for visiting DZone today,
Edit Profile Manage Email Subscriptions Moderation Admin Console How to Post to DZone Article Submission Guidelines
View Profile
Sign Out
Refcards
Trend Reports
Events
Zones
Culture and Methodologies Agile Career Development Methodologies Team Management
Data Engineering AI/ML Big Data Data Databases IoT
Software Design and Architecture Cloud Architecture Containers Integration Microservices Performance Security
Coding Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
Partner Zones AWS Cloud
by AWS Developer Relations
Culture and Methodologies
Agile Career Development Methodologies Team Management
Data Engineering
AI/ML Big Data Data Databases IoT
Software Design and Architecture
Cloud Architecture Containers Integration Microservices Performance Security
Coding
Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance
Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
Partner Zones
AWS Cloud
by AWS Developer Relations
The Latest "Software Integration: The Intersection of APIs, Microservices, and Cloud-Based Systems" Trend Report
Get the report
  1. DZone
  2. Culture and Methodologies
  3. Agile
  4. API Design Is Not a Requirement for All Devs but a Little Empathy Should Be

API Design Is Not a Requirement for All Devs but a Little Empathy Should Be

We all have our strengths, and we all have our weaknesses. Maybe we are asking too much of our developers—API design might not be their strength.

Kin Lane user avatar by
Kin Lane
·
Sep. 29, 16 · Opinion
Like (5)
Save
Tweet
Share
3.00K Views

Join the DZone community and get the full member experience.

Join For Free

My friend Matthew Reinbold wrote a great post on his blog asking, "what if developers aren't meant to do API design?" I think he is touching on an important aspect of why DevOps might not work everywhere in the same expected ways. We all have our strengths, and we all have our weaknesses, and I agree with him that maybe we are asking too much of our developers—API design might not be their strength. 

As the owner of a small business operated by one person (me), DevOps is hard. I cannot do everything myself and require a variety of services to help me out, but I still hit areas where I'm deficient like graphic design and editing. I'm getting better at editing, but my graphic design skills never seem to evolve at all. I would like to think I can do everything, but I can't, and if I had a job at a large organization and was expected to learn every piece of a modern stack—I'm not sure I could do it.

Bringing it back to the API design, though, the question of who does API design still needs to be answered. It can't just be left behind because a developer of an API doesn't have the chops. Ideally, a company could afford to hire an API designer and architect to come in and work their magic, but I know, in reality, this isn't going to happen within many organizations. So, what can be done?

API Design in Our Tools and Services

Developers use language and platform specific IDE functionality as a crutch, and we need the same enablement for API design in leading API design tools and services. This is why projects like the API design stylebook are so important because they begin to provide us with the definitions that are needed to drive the advancements.

Sharing of Common API Patterns

I feel like such a nag on this subject, but we need to share the common API patterns more. If you are using HAL or Siren, share the story and definition of your approach. If you have OpenAPI Spec or API Blueprint, make them available. If you are a developer, go out and do a little discovery of existing patterns before you get to work. You don't need to be an expert, but do a little homework first.

Sharing of Common Data Patterns

This exists in the form of Schema.org. Don't reinvent the wheel when it comes to your underlying schema. Even if you are mapping to completely wacky sh*t behind, use common definitions on the front. Again, API design tooling and services need to pipe these into your solutions. Here are all the OpenlAPI specs for Schema.or to get you going. 

These three areas can help augment developers when API design is just not their cup of tea. After that, and short of hiring an API design professional, developers who are touching on the API layers are just going to have to step up and develop some empathy. I think API design is part science (specs, schema, patterns), and part empathy of everyone who will come in contact with that API. I don't require all developers understand hypermedia or REST, but they damn sure should be required to put some thought into who is going to be developing against the API and consuming it. Otherwise they shouldn't be developing an API in the first place.

Coming full circle, I guess this could be an argument for GraphQL, right? If you can't find developers who get API design, you can't hire an API professional, and for some reason they are empathy-challenged, you can provide a GraphQL layer that allows developers to get at what they need. IDK. This is one of the reasons I like web APIs (not just REST)—they allow for this bridging of the often very technical backend with the often very human interface on the front-end. I guess it also takes a willingness on developers to empathize with the fact that this exists and are willing to do a little extra work.

API Design dev Empathy (software) Requirement

Published at DZone with permission of Kin Lane, DZone MVB. See the original article here.

Opinions expressed by DZone contributors are their own.

Popular on DZone

  • 11 Observability Tools You Should Know
  • Top 5 Data Streaming Trends for 2023
  • Microservices Testing
  • Assessment of Scalability Constraints (and Solutions)

Comments

Partner Resources

X

ABOUT US

  • About DZone
  • Send feedback
  • Careers
  • Sitemap

ADVERTISE

  • Advertise with DZone

CONTRIBUTE ON DZONE

  • Article Submission Guidelines
  • Become a Contributor
  • Visit the Writers' Zone

LEGAL

  • Terms of Service
  • Privacy Policy

CONTACT US

  • 600 Park Offices Drive
  • Suite 300
  • Durham, NC 27709
  • support@dzone.com
  • +1 (919) 678-0300

Let's be friends: