SlideShare ist ein Scribd-Unternehmen logo
1 von 55
Downloaden Sie, um offline zu lesen
Why Your APIs
Should Fly First
Class
DeveloperWeek 2021
1
1
$ whoami
2
Agenda
2
What is an API
first mentality?
3
How we build
APIs first
4
“Build for two”
5
Tools and tricks
6
Finish!
$ whoami
My name is Robert Ross, I’m the co-founder and CEO of
FireHydrant, an incident management tool.
3
bobbytables bobbytables
Terms
So we’re all on the same page
● An API is a REST API accessed via
HTTP
● An Actor is a person, integration,
or 3rd party performing actions
● A Frontend is a javascript
application that talks to your API
4
The Frontend
Matters
More than ever
5
Dynamic frontend experiences are valuable
This expectation likely comes from their experience with Facebook, Netflix, and
other large tech firms with the resources to invest in complex frontend
architectures.
6
Dynamic frontend experiences are valuable
A dynamic frontend experience
gives the same sense of quality that
a good thud of a car door gives.
7
Dynamic frontend experiences are valuable
It’s a sad reality, but if your
website just doesn’t have a
particular type of fancy sizzle to
it, customers may think it’s
“cheap.”
8
A dynamic frontend experience is a risk
9
Do you move that chess piece early?
Hint: Yes
10
The Bet We Made
● We made a bet in the first days of FireHydrant to
build an API for everything.
● We’ve amassed over 130 public API endpoints in just
over 2 years.
● We built React+Redux frontends from day 1.
● Every feature that FireHydrant exposes in the UI has
an underlying API that our customers can integrate
against.
11
An early goal for
FireHydrant
Be an integration platform
12
Be an integratable platform
● This means everything our platform could do, our customers can also
programmatically integrate with us
● It also meant that we had to consider our API design earlier than most
startups do
13
Be an integratable platform
● An API first mentality also changed our database design to accompany
different actors
● We built a frontend accessing an API from the start, creating the need for
well defined engineering roles early on.
14
Why don’t most
companies do this?
15
“It’s expensive”
● Building an API first and then building a
frontend is more expensive… initially.
● Eventually the benefit of having that API early
will exceed that initial cost by orders of
magnitude.
○ Want to release a mobile app in 2 years? Guess
what, you have an API already.
○ Customers that integrate are less likely churn.
○ Etc etc
16
“It’s time consuming”
● If you have any reason to think your company will be
successful, an API from the start will give you a leg up
against your competitors.
17
So what does
“API First”
mean?
18
Literally don’t build a user
interface until you have an API
19
Your API should be a bin of legos
● Break feature specs down only by what the
feature does, not what it looks like.
● When you add start mixing UI with behavior, your
application will have a hard time becoming a
platform for others to integrate with.
● When behavior is exposed via an API, actors
(internally or externally) can start imagining a UI
for themselves, and use the bricks provided to
execute.
20
API
User Interface
This doesn’t mean
building APIs blindly!
It’s a breakdown of how we build an end result
for customers
21
I’d wager 90% of companies build software this way
22
Product Planning
Write a story
(Clubhouse, Jira)
Engineering
builds feature
Ship it
Feature specification,
wireframes, acceptance
criteria, why we’re building
it
Iteration planning, team
assignment, “Given, When,
Then”
Take wireframes, design,
acceptance criteria, build
it
Deliver to customers,
announce, move on
Mixing UI + Behavior together
(This forces the need for full-stack engineers in many companies)
Subtle differences
You need to break this process down to be able
to build APIs first
23
24
Feature Team Composition
Our Integrations Team
UX/UI Design
Frontend
Engineering
Product Manager
Backend
Engineering
SRE
(floating)
You need a design first (we use Figma)
25
Even a lo-fi, sharpie version works
UX/UI Design
That allows your team to discover
which APIs are needed
26
Product Manager
Backend
Engineering
This allows you to build an API first
27
The frontend work can be done async as well
Backend
Engineering
Then we have a fully functional frontend
28
Built by separate engineers, with separate pull requests
Frontend
Engineering
Backend
Engineering
Why is this better?
29
Building an API first is a forcing function
● This process would never work unless every person is on the same page.
● We’ve designed our feature teams to be tight-knit in order to ship backends
and frontends in async.
● This points everyone on the feature team in the same direction.
30
Building an API first is a forcing function
● It creates interfaces that your customers can now interface with.
● A platform that people can integrate with means tighter customer bonds.
● It generates conversations amongst the team that might not otherwise
happen.
31
Build for two
How to build an API that lasts
32
API Access
And why you should never
tie records to users
33
Actors
● While a user will make a request to your API
from your frontend, you must account for
other actors.
● Access to your API should not be restricted to
just user accounts.
● Build in authentication / authorization modes
that allow for both people and programs.
● Your underlying data model needs to change.
APIs are meant for computers
34
User Integration
Bot
Your API
Data model considerations
● Your data model needs to support the idea
of multiple actors creating and modifying
data.
● Most systems have a “god object”, User,
that everything has an association to.
○ This needs to change in order to build a
integratable platform.
○ You can use polymorphism or a single
entity with a type to achieve this.
35
Actors
User Integration
Bot
FireHydrant’s Data Model
36
Actors
User Integration
Bot
POST /v1/incidents
CREATE TABLE public.incidents (
id uuid DEFAULT public.gen_random_uuid () NOT NULL,
name character varying NOT NULL,
description text DEFAULT ''::text NOT NULL,
created_at timestamp without time zone NOT NULL,
updated_at timestamp without time zone NOT NULL,
status integer DEFAULT 0 NOT NULL,
created_by_type character varying,
created_by_id uuid,
organization_id uuid NOT NULL
);
Our database is heavily polymorphic,
allowing us to store multiple actor types
on records such as incidents.
This is a snippet of our incidents schema.
Declare an incident endpoint, which stores
who/what opened the incident
Alternative Data Model
37
Actor
User Bot Integration
Incident
Actor is associated to one of
user, bot, or integration
(polymorphic) and all other
records simply associate to a
single actor record
Runbook Etc...
(I wish we did this instead in hindsight)
What does this unlock?
● You can now separate types of actors in
your application with ease. Not
everyone is a “user”.
● If a data model associates everything to
a user via the API, what happens when
that person leaves the company?
○ Hint: All the integrations you built with
that users’ account break.
● All created via the same APIs your
frontend uses.
38
FireH
ydrant
U
ser
Slack
User
Allow for many
And constrain to one
39
Think two+ features ahead
40
● A golden rule I follow: It’s ok for an array to have one
element in it in your API.
● It’s common a mistake to restrict your JSON schema to a
singular object, and later on you need to add another.
● It’s much easier to constrain to one in code, but allow
for multiple in your database.
Story time
Where build for two would have saved
me a headache at Namely, an HR SaaS.
41
People can only report to one
person at a company right?
42
The dotted line reporting relationship is a weaker relationship. The dotted line
manager still has a formal right to some part of the individual’s time and attention
and will usually set some of goals. But it is not a strong relationship as a solid line.
Nope!
43
Simple JSON of the profiles
endpoint at Namely
44
What if we built for two...
45
● The JSON only supported one “reports_to” field even though the product now
supports multiple reports_to (with dotted line managers)
● This situation is the worst case scenario because JSON API’s can’t change
without heavy notice or complete deprecation
● This potentially could have been avoided if we thought two features ahead.
Reports to could be an array
46
What if we built for two...
47
● These opinions are mostly from putting my hand on a hot stove over the last
10 years
● Early decisions don’t always have to be “gotta go fast” mentality
● You can often build a model that will last you years if you think 2 features
away.
● IE: We have users now, but will we have companies? Will we have multiple
payment profiles?
Tools and tricks
To deliver great APIs
48
Document in tandem
● While you’re building your API, please,
oh please, document it as you go.
○ No one wants to go back and document
100+ endpoints.
● Use the OpenAPI specification (Swagger)
to quickly generate documentation.
● Use something that plugs into your
framework that can generate this
OpenAPI spec for you.
○ We use Grape + Grape Swagger.
49
Documentation Hosting
● There are a few options out there for
API documentation hosting. I personally
prefer stoplight.io
● They can read a OpenAPI specification
and generate nice documentation as
well as a “Try It” page for every endpoint.
● There are a few others out there as well.
50
APIs at
FireHydrant
A first class feature
51
It’s APIs all the way down
● All of our customers can access the
FireHydrant API that our UI does.
● This means our customers get the same
guarantees that our frontend gets, it’s
not an afterthought.
● OpenAPI spec allows us to generate
documentation websites and clients
with ease.
52
developers.firehydrant.io
Build an API first.
Future you will love you for it.
53
Thanks!
54
bobbytables bobbytables
55
Stop by our booth in the
Expo for a chance to win
Airpods Max

Weitere ähnliche Inhalte

Was ist angesagt?

{Re}designing a Developer Portal
{Re}designing a Developer Portal{Re}designing a Developer Portal
{Re}designing a Developer PortalPronovix
 
apidays LIVE Australia 2020 - Have your cake and eat it too: GraphQL? REST? W...
apidays LIVE Australia 2020 - Have your cake and eat it too: GraphQL? REST? W...apidays LIVE Australia 2020 - Have your cake and eat it too: GraphQL? REST? W...
apidays LIVE Australia 2020 - Have your cake and eat it too: GraphQL? REST? W...apidays
 
Developer Experience (DX) as a Fitness Function for Platform Teams
Developer Experience (DX) as a Fitness Function for Platform TeamsDeveloper Experience (DX) as a Fitness Function for Platform Teams
Developer Experience (DX) as a Fitness Function for Platform TeamsAndy Marks
 
WSO2 Product Release Webinar - WSO2 App Factory 2.1
WSO2 Product Release Webinar - WSO2 App Factory 2.1WSO2 Product Release Webinar - WSO2 App Factory 2.1
WSO2 Product Release Webinar - WSO2 App Factory 2.1WSO2
 
Designing APIs with OpenAPI Spec
Designing APIs with OpenAPI SpecDesigning APIs with OpenAPI Spec
Designing APIs with OpenAPI SpecAdam Paxton
 
Scaling Your Team With GraphQL: Why Relationships Matter
Scaling Your Team With GraphQL: Why Relationships MatterScaling Your Team With GraphQL: Why Relationships Matter
Scaling Your Team With GraphQL: Why Relationships MatterJoel Bowen
 
OpenAPI Spec at Google (Open API Initiative Meetup on 2016-09-15)
OpenAPI Spec at Google (Open API Initiative Meetup on 2016-09-15)OpenAPI Spec at Google (Open API Initiative Meetup on 2016-09-15)
OpenAPI Spec at Google (Open API Initiative Meetup on 2016-09-15)Open API Initiative (OAI)
 
Running the-next-generation-of-cloud-native-applications-using-open-applicati...
Running the-next-generation-of-cloud-native-applications-using-open-applicati...Running the-next-generation-of-cloud-native-applications-using-open-applicati...
Running the-next-generation-of-cloud-native-applications-using-open-applicati...NaveedAhmad239
 
API Design Collaboration
API Design CollaborationAPI Design Collaboration
API Design CollaborationUchit Vyas ☁
 
Automating the API Product Lifecycle
Automating the API Product LifecycleAutomating the API Product Lifecycle
Automating the API Product LifecyclePronovix
 
Blood, sweat, and creating an API handbook
Blood, sweat, and creating an API handbookBlood, sweat, and creating an API handbook
Blood, sweat, and creating an API handbookPronovix
 
API SDK Development – Lessons Learned
API SDK Development – Lessons LearnedAPI SDK Development – Lessons Learned
API SDK Development – Lessons LearnedPronovix
 
apidays LIVE Paris 2021 - Inside API delivery Pipeline, the checklist! - Fran...
apidays LIVE Paris 2021 - Inside API delivery Pipeline, the checklist! - Fran...apidays LIVE Paris 2021 - Inside API delivery Pipeline, the checklist! - Fran...
apidays LIVE Paris 2021 - Inside API delivery Pipeline, the checklist! - Fran...apidays
 
Fed London - January 2015
Fed London - January 2015Fed London - January 2015
Fed London - January 2015Phil Leggetter
 
TDD for Microservices
TDD for MicroservicesTDD for Microservices
TDD for MicroservicesVMware Tanzu
 
apidays LIVE Australia 2020 - Productising your Microservices as API Products...
apidays LIVE Australia 2020 - Productising your Microservices as API Products...apidays LIVE Australia 2020 - Productising your Microservices as API Products...
apidays LIVE Australia 2020 - Productising your Microservices as API Products...apidays
 
apidays LIVE Hong Kong 2021 - Multi-Protocol APIs at Scale in Adidas by Jesus...
apidays LIVE Hong Kong 2021 - Multi-Protocol APIs at Scale in Adidas by Jesus...apidays LIVE Hong Kong 2021 - Multi-Protocol APIs at Scale in Adidas by Jesus...
apidays LIVE Hong Kong 2021 - Multi-Protocol APIs at Scale in Adidas by Jesus...apidays
 
apidays LIVE Helsinki - Implementing OpenAPI and GraphQL Services with gRPC b...
apidays LIVE Helsinki - Implementing OpenAPI and GraphQL Services with gRPC b...apidays LIVE Helsinki - Implementing OpenAPI and GraphQL Services with gRPC b...
apidays LIVE Helsinki - Implementing OpenAPI and GraphQL Services with gRPC b...apidays
 
Itb 2021 - Bulding Quick APIs by Gavin Pickin
Itb 2021 - Bulding Quick APIs by Gavin PickinItb 2021 - Bulding Quick APIs by Gavin Pickin
Itb 2021 - Bulding Quick APIs by Gavin PickinGavin Pickin
 

Was ist angesagt? (20)

{Re}designing a Developer Portal
{Re}designing a Developer Portal{Re}designing a Developer Portal
{Re}designing a Developer Portal
 
apidays LIVE Australia 2020 - Have your cake and eat it too: GraphQL? REST? W...
apidays LIVE Australia 2020 - Have your cake and eat it too: GraphQL? REST? W...apidays LIVE Australia 2020 - Have your cake and eat it too: GraphQL? REST? W...
apidays LIVE Australia 2020 - Have your cake and eat it too: GraphQL? REST? W...
 
Developer Experience (DX) as a Fitness Function for Platform Teams
Developer Experience (DX) as a Fitness Function for Platform TeamsDeveloper Experience (DX) as a Fitness Function for Platform Teams
Developer Experience (DX) as a Fitness Function for Platform Teams
 
WSO2 Product Release Webinar - WSO2 App Factory 2.1
WSO2 Product Release Webinar - WSO2 App Factory 2.1WSO2 Product Release Webinar - WSO2 App Factory 2.1
WSO2 Product Release Webinar - WSO2 App Factory 2.1
 
Designing APIs with OpenAPI Spec
Designing APIs with OpenAPI SpecDesigning APIs with OpenAPI Spec
Designing APIs with OpenAPI Spec
 
Scaling Your Team With GraphQL: Why Relationships Matter
Scaling Your Team With GraphQL: Why Relationships MatterScaling Your Team With GraphQL: Why Relationships Matter
Scaling Your Team With GraphQL: Why Relationships Matter
 
OpenAPI Spec at Google (Open API Initiative Meetup on 2016-09-15)
OpenAPI Spec at Google (Open API Initiative Meetup on 2016-09-15)OpenAPI Spec at Google (Open API Initiative Meetup on 2016-09-15)
OpenAPI Spec at Google (Open API Initiative Meetup on 2016-09-15)
 
Running the-next-generation-of-cloud-native-applications-using-open-applicati...
Running the-next-generation-of-cloud-native-applications-using-open-applicati...Running the-next-generation-of-cloud-native-applications-using-open-applicati...
Running the-next-generation-of-cloud-native-applications-using-open-applicati...
 
API Design Collaboration
API Design CollaborationAPI Design Collaboration
API Design Collaboration
 
Automating the API Product Lifecycle
Automating the API Product LifecycleAutomating the API Product Lifecycle
Automating the API Product Lifecycle
 
Blood, sweat, and creating an API handbook
Blood, sweat, and creating an API handbookBlood, sweat, and creating an API handbook
Blood, sweat, and creating an API handbook
 
API SDK Development – Lessons Learned
API SDK Development – Lessons LearnedAPI SDK Development – Lessons Learned
API SDK Development – Lessons Learned
 
apidays LIVE Paris 2021 - Inside API delivery Pipeline, the checklist! - Fran...
apidays LIVE Paris 2021 - Inside API delivery Pipeline, the checklist! - Fran...apidays LIVE Paris 2021 - Inside API delivery Pipeline, the checklist! - Fran...
apidays LIVE Paris 2021 - Inside API delivery Pipeline, the checklist! - Fran...
 
Fed London - January 2015
Fed London - January 2015Fed London - January 2015
Fed London - January 2015
 
TDD for Microservices
TDD for MicroservicesTDD for Microservices
TDD for Microservices
 
apidays LIVE Australia 2020 - Productising your Microservices as API Products...
apidays LIVE Australia 2020 - Productising your Microservices as API Products...apidays LIVE Australia 2020 - Productising your Microservices as API Products...
apidays LIVE Australia 2020 - Productising your Microservices as API Products...
 
apidays LIVE Hong Kong 2021 - Multi-Protocol APIs at Scale in Adidas by Jesus...
apidays LIVE Hong Kong 2021 - Multi-Protocol APIs at Scale in Adidas by Jesus...apidays LIVE Hong Kong 2021 - Multi-Protocol APIs at Scale in Adidas by Jesus...
apidays LIVE Hong Kong 2021 - Multi-Protocol APIs at Scale in Adidas by Jesus...
 
apidays LIVE Helsinki - Implementing OpenAPI and GraphQL Services with gRPC b...
apidays LIVE Helsinki - Implementing OpenAPI and GraphQL Services with gRPC b...apidays LIVE Helsinki - Implementing OpenAPI and GraphQL Services with gRPC b...
apidays LIVE Helsinki - Implementing OpenAPI and GraphQL Services with gRPC b...
 
Itb 2021 - Bulding Quick APIs by Gavin Pickin
Itb 2021 - Bulding Quick APIs by Gavin PickinItb 2021 - Bulding Quick APIs by Gavin Pickin
Itb 2021 - Bulding Quick APIs by Gavin Pickin
 
API Docs with OpenAPI 3.0
API Docs with OpenAPI 3.0API Docs with OpenAPI 3.0
API Docs with OpenAPI 3.0
 

Ähnlich wie Why your APIs should fly first class

apidays LIVE Jakarta - What will the next generation of API Portals look like...
apidays LIVE Jakarta - What will the next generation of API Portals look like...apidays LIVE Jakarta - What will the next generation of API Portals look like...
apidays LIVE Jakarta - What will the next generation of API Portals look like...apidays
 
MuleSoft Surat Meetup#39 - Pragmatic API Led Connectivity
MuleSoft Surat Meetup#39 - Pragmatic API Led ConnectivityMuleSoft Surat Meetup#39 - Pragmatic API Led Connectivity
MuleSoft Surat Meetup#39 - Pragmatic API Led ConnectivityJitendra Bafna
 
I Love APIs - Oct 2015
I Love APIs - Oct 2015I Love APIs - Oct 2015
I Love APIs - Oct 2015Mike McNeil
 
How to build and deploy app on Replit
How to build and deploy app on ReplitHow to build and deploy app on Replit
How to build and deploy app on Replitmatiasfund
 
Meetup 2022 - API Gateway landscape.pdf
Meetup 2022 - API Gateway landscape.pdfMeetup 2022 - API Gateway landscape.pdf
Meetup 2022 - API Gateway landscape.pdfLuca Mattia Ferrari
 
Creating Datadipity
Creating DatadipityCreating Datadipity
Creating DatadipityClickslide
 
Why You Should Be Doing Contract-First API Development
Why You Should Be Doing Contract-First API DevelopmentWhy You Should Be Doing Contract-First API Development
Why You Should Be Doing Contract-First API DevelopmentDevenPhillips
 
APIs as a Product Strategy
APIs as a Product StrategyAPIs as a Product Strategy
APIs as a Product StrategyRavi Kumar
 
Understanding API Architectures: Web API vs. Minimal API – An In-Depth Compar...
Understanding API Architectures: Web API vs. Minimal API – An In-Depth Compar...Understanding API Architectures: Web API vs. Minimal API – An In-Depth Compar...
Understanding API Architectures: Web API vs. Minimal API – An In-Depth Compar...Polyxer Systems
 
Dev Learn Handout - Session 604
Dev Learn Handout - Session 604Dev Learn Handout - Session 604
Dev Learn Handout - Session 604Chad Udell
 
IIBA® Sydney Unlocking the Power of Low Code No Code: Why BAs Hold the Key
IIBA® Sydney Unlocking the Power of Low Code No Code: Why BAs Hold the KeyIIBA® Sydney Unlocking the Power of Low Code No Code: Why BAs Hold the Key
IIBA® Sydney Unlocking the Power of Low Code No Code: Why BAs Hold the KeyAustraliaChapterIIBA
 
Building API Products
Building API ProductsBuilding API Products
Building API ProductsJames Samuel
 
A Snapshot of API Design Trends In 2019
A Snapshot of API Design Trends In 2019A Snapshot of API Design Trends In 2019
A Snapshot of API Design Trends In 2019Bill Doerrfeld
 
Top 7 wrong common beliefs about Enterprise API implementation
Top 7 wrong common beliefs about Enterprise API implementationTop 7 wrong common beliefs about Enterprise API implementation
Top 7 wrong common beliefs about Enterprise API implementationOCTO Technology
 
The Complete Guide to API Development in 2022.pdf
The Complete Guide to API Development in 2022.pdfThe Complete Guide to API Development in 2022.pdf
The Complete Guide to API Development in 2022.pdfConcetto Labs
 
INTERFACE, by apidays - How to Win Friends and Influence People with API First
INTERFACE, by apidays - How to Win Friends and Influence People with API FirstINTERFACE, by apidays - How to Win Friends and Influence People with API First
INTERFACE, by apidays - How to Win Friends and Influence People with API Firstapidays
 
API first.pptx
API first.pptxAPI first.pptx
API first.pptxOdedApel
 
Clickslide Datadipity Beta V1
Clickslide Datadipity Beta V1Clickslide Datadipity Beta V1
Clickslide Datadipity Beta V1Gabriel Ortiz
 

Ähnlich wie Why your APIs should fly first class (20)

apidays LIVE Jakarta - What will the next generation of API Portals look like...
apidays LIVE Jakarta - What will the next generation of API Portals look like...apidays LIVE Jakarta - What will the next generation of API Portals look like...
apidays LIVE Jakarta - What will the next generation of API Portals look like...
 
MuleSoft Surat Meetup#39 - Pragmatic API Led Connectivity
MuleSoft Surat Meetup#39 - Pragmatic API Led ConnectivityMuleSoft Surat Meetup#39 - Pragmatic API Led Connectivity
MuleSoft Surat Meetup#39 - Pragmatic API Led Connectivity
 
I Love APIs - Oct 2015
I Love APIs - Oct 2015I Love APIs - Oct 2015
I Love APIs - Oct 2015
 
API.docx
API.docxAPI.docx
API.docx
 
How to build and deploy app on Replit
How to build and deploy app on ReplitHow to build and deploy app on Replit
How to build and deploy app on Replit
 
Meetup 2022 - API Gateway landscape.pdf
Meetup 2022 - API Gateway landscape.pdfMeetup 2022 - API Gateway landscape.pdf
Meetup 2022 - API Gateway landscape.pdf
 
Creating Datadipity
Creating DatadipityCreating Datadipity
Creating Datadipity
 
Why You Should Be Doing Contract-First API Development
Why You Should Be Doing Contract-First API DevelopmentWhy You Should Be Doing Contract-First API Development
Why You Should Be Doing Contract-First API Development
 
APIs as a Product Strategy
APIs as a Product StrategyAPIs as a Product Strategy
APIs as a Product Strategy
 
Understanding API Architectures: Web API vs. Minimal API – An In-Depth Compar...
Understanding API Architectures: Web API vs. Minimal API – An In-Depth Compar...Understanding API Architectures: Web API vs. Minimal API – An In-Depth Compar...
Understanding API Architectures: Web API vs. Minimal API – An In-Depth Compar...
 
Dev Learn Handout - Session 604
Dev Learn Handout - Session 604Dev Learn Handout - Session 604
Dev Learn Handout - Session 604
 
IIBA® Sydney Unlocking the Power of Low Code No Code: Why BAs Hold the Key
IIBA® Sydney Unlocking the Power of Low Code No Code: Why BAs Hold the KeyIIBA® Sydney Unlocking the Power of Low Code No Code: Why BAs Hold the Key
IIBA® Sydney Unlocking the Power of Low Code No Code: Why BAs Hold the Key
 
Building API Products
Building API ProductsBuilding API Products
Building API Products
 
A Snapshot of API Design Trends In 2019
A Snapshot of API Design Trends In 2019A Snapshot of API Design Trends In 2019
A Snapshot of API Design Trends In 2019
 
Top 7 wrong common beliefs about Enterprise API implementation
Top 7 wrong common beliefs about Enterprise API implementationTop 7 wrong common beliefs about Enterprise API implementation
Top 7 wrong common beliefs about Enterprise API implementation
 
Octo API-days 2015
Octo API-days 2015Octo API-days 2015
Octo API-days 2015
 
The Complete Guide to API Development in 2022.pdf
The Complete Guide to API Development in 2022.pdfThe Complete Guide to API Development in 2022.pdf
The Complete Guide to API Development in 2022.pdf
 
INTERFACE, by apidays - How to Win Friends and Influence People with API First
INTERFACE, by apidays - How to Win Friends and Influence People with API FirstINTERFACE, by apidays - How to Win Friends and Influence People with API First
INTERFACE, by apidays - How to Win Friends and Influence People with API First
 
API first.pptx
API first.pptxAPI first.pptx
API first.pptx
 
Clickslide Datadipity Beta V1
Clickslide Datadipity Beta V1Clickslide Datadipity Beta V1
Clickslide Datadipity Beta V1
 

Mehr von LibbySchulze

Running distributed tests with k6.pdf
Running distributed tests with k6.pdfRunning distributed tests with k6.pdf
Running distributed tests with k6.pdfLibbySchulze
 
Extending Kubectl.pptx
Extending Kubectl.pptxExtending Kubectl.pptx
Extending Kubectl.pptxLibbySchulze
 
Enhancing Data Protection Workflows with Kanister And Argo Workflows
Enhancing Data Protection Workflows with Kanister And Argo WorkflowsEnhancing Data Protection Workflows with Kanister And Argo Workflows
Enhancing Data Protection Workflows with Kanister And Argo WorkflowsLibbySchulze
 
Fallacies in Platform Engineering.pdf
Fallacies in Platform Engineering.pdfFallacies in Platform Engineering.pdf
Fallacies in Platform Engineering.pdfLibbySchulze
 
Intro to Fluvio.pptx.pdf
Intro to Fluvio.pptx.pdfIntro to Fluvio.pptx.pdf
Intro to Fluvio.pptx.pdfLibbySchulze
 
Enhance your Kafka Infrastructure with Fluvio.pptx
Enhance your Kafka Infrastructure with Fluvio.pptxEnhance your Kafka Infrastructure with Fluvio.pptx
Enhance your Kafka Infrastructure with Fluvio.pptxLibbySchulze
 
CNCF On-Demand Webinar_ LitmusChaos Project Updates.pdf
CNCF On-Demand Webinar_ LitmusChaos Project Updates.pdfCNCF On-Demand Webinar_ LitmusChaos Project Updates.pdf
CNCF On-Demand Webinar_ LitmusChaos Project Updates.pdfLibbySchulze
 
Oh The Places You'll Sign.pdf
Oh The Places You'll Sign.pdfOh The Places You'll Sign.pdf
Oh The Places You'll Sign.pdfLibbySchulze
 
Rancher MasterClass - Avoiding-configuration-drift.pptx
Rancher  MasterClass - Avoiding-configuration-drift.pptxRancher  MasterClass - Avoiding-configuration-drift.pptx
Rancher MasterClass - Avoiding-configuration-drift.pptxLibbySchulze
 
vFunction Konveyor Meetup - Why App Modernization Projects Fail - Aug 2022.pptx
vFunction Konveyor Meetup - Why App Modernization Projects Fail - Aug 2022.pptxvFunction Konveyor Meetup - Why App Modernization Projects Fail - Aug 2022.pptx
vFunction Konveyor Meetup - Why App Modernization Projects Fail - Aug 2022.pptxLibbySchulze
 
CNCF Live Webinar: Low Footprint Java Containers with GraalVM
CNCF Live Webinar: Low Footprint Java Containers with GraalVMCNCF Live Webinar: Low Footprint Java Containers with GraalVM
CNCF Live Webinar: Low Footprint Java Containers with GraalVMLibbySchulze
 
EnRoute-OPA-Integration.pdf
EnRoute-OPA-Integration.pdfEnRoute-OPA-Integration.pdf
EnRoute-OPA-Integration.pdfLibbySchulze
 
AirGap_zusammen_neu.pdf
AirGap_zusammen_neu.pdfAirGap_zusammen_neu.pdf
AirGap_zusammen_neu.pdfLibbySchulze
 
Copy of OTel Me All About OpenTelemetry The Current & Future State, Navigatin...
Copy of OTel Me All About OpenTelemetry The Current & Future State, Navigatin...Copy of OTel Me All About OpenTelemetry The Current & Future State, Navigatin...
Copy of OTel Me All About OpenTelemetry The Current & Future State, Navigatin...LibbySchulze
 
OTel Me All About OpenTelemetry The Current & Future State, Navigating the Pr...
OTel Me All About OpenTelemetry The Current & Future State, Navigating the Pr...OTel Me All About OpenTelemetry The Current & Future State, Navigating the Pr...
OTel Me All About OpenTelemetry The Current & Future State, Navigating the Pr...LibbySchulze
 
CNCF_ A step to step guide to platforming your delivery setup.pdf
CNCF_ A step to step guide to platforming your delivery setup.pdfCNCF_ A step to step guide to platforming your delivery setup.pdf
CNCF_ A step to step guide to platforming your delivery setup.pdfLibbySchulze
 
CNCF Online - Data Protection Guardrails using Open Policy Agent (OPA).pdf
CNCF Online - Data Protection Guardrails using Open Policy Agent (OPA).pdfCNCF Online - Data Protection Guardrails using Open Policy Agent (OPA).pdf
CNCF Online - Data Protection Guardrails using Open Policy Agent (OPA).pdfLibbySchulze
 
Securing Windows workloads.pdf
Securing Windows workloads.pdfSecuring Windows workloads.pdf
Securing Windows workloads.pdfLibbySchulze
 
Securing Windows workloads.pdf
Securing Windows workloads.pdfSecuring Windows workloads.pdf
Securing Windows workloads.pdfLibbySchulze
 
Advancements in Kubernetes Workload Identity for Azure
Advancements in Kubernetes Workload Identity for AzureAdvancements in Kubernetes Workload Identity for Azure
Advancements in Kubernetes Workload Identity for AzureLibbySchulze
 

Mehr von LibbySchulze (20)

Running distributed tests with k6.pdf
Running distributed tests with k6.pdfRunning distributed tests with k6.pdf
Running distributed tests with k6.pdf
 
Extending Kubectl.pptx
Extending Kubectl.pptxExtending Kubectl.pptx
Extending Kubectl.pptx
 
Enhancing Data Protection Workflows with Kanister And Argo Workflows
Enhancing Data Protection Workflows with Kanister And Argo WorkflowsEnhancing Data Protection Workflows with Kanister And Argo Workflows
Enhancing Data Protection Workflows with Kanister And Argo Workflows
 
Fallacies in Platform Engineering.pdf
Fallacies in Platform Engineering.pdfFallacies in Platform Engineering.pdf
Fallacies in Platform Engineering.pdf
 
Intro to Fluvio.pptx.pdf
Intro to Fluvio.pptx.pdfIntro to Fluvio.pptx.pdf
Intro to Fluvio.pptx.pdf
 
Enhance your Kafka Infrastructure with Fluvio.pptx
Enhance your Kafka Infrastructure with Fluvio.pptxEnhance your Kafka Infrastructure with Fluvio.pptx
Enhance your Kafka Infrastructure with Fluvio.pptx
 
CNCF On-Demand Webinar_ LitmusChaos Project Updates.pdf
CNCF On-Demand Webinar_ LitmusChaos Project Updates.pdfCNCF On-Demand Webinar_ LitmusChaos Project Updates.pdf
CNCF On-Demand Webinar_ LitmusChaos Project Updates.pdf
 
Oh The Places You'll Sign.pdf
Oh The Places You'll Sign.pdfOh The Places You'll Sign.pdf
Oh The Places You'll Sign.pdf
 
Rancher MasterClass - Avoiding-configuration-drift.pptx
Rancher  MasterClass - Avoiding-configuration-drift.pptxRancher  MasterClass - Avoiding-configuration-drift.pptx
Rancher MasterClass - Avoiding-configuration-drift.pptx
 
vFunction Konveyor Meetup - Why App Modernization Projects Fail - Aug 2022.pptx
vFunction Konveyor Meetup - Why App Modernization Projects Fail - Aug 2022.pptxvFunction Konveyor Meetup - Why App Modernization Projects Fail - Aug 2022.pptx
vFunction Konveyor Meetup - Why App Modernization Projects Fail - Aug 2022.pptx
 
CNCF Live Webinar: Low Footprint Java Containers with GraalVM
CNCF Live Webinar: Low Footprint Java Containers with GraalVMCNCF Live Webinar: Low Footprint Java Containers with GraalVM
CNCF Live Webinar: Low Footprint Java Containers with GraalVM
 
EnRoute-OPA-Integration.pdf
EnRoute-OPA-Integration.pdfEnRoute-OPA-Integration.pdf
EnRoute-OPA-Integration.pdf
 
AirGap_zusammen_neu.pdf
AirGap_zusammen_neu.pdfAirGap_zusammen_neu.pdf
AirGap_zusammen_neu.pdf
 
Copy of OTel Me All About OpenTelemetry The Current & Future State, Navigatin...
Copy of OTel Me All About OpenTelemetry The Current & Future State, Navigatin...Copy of OTel Me All About OpenTelemetry The Current & Future State, Navigatin...
Copy of OTel Me All About OpenTelemetry The Current & Future State, Navigatin...
 
OTel Me All About OpenTelemetry The Current & Future State, Navigating the Pr...
OTel Me All About OpenTelemetry The Current & Future State, Navigating the Pr...OTel Me All About OpenTelemetry The Current & Future State, Navigating the Pr...
OTel Me All About OpenTelemetry The Current & Future State, Navigating the Pr...
 
CNCF_ A step to step guide to platforming your delivery setup.pdf
CNCF_ A step to step guide to platforming your delivery setup.pdfCNCF_ A step to step guide to platforming your delivery setup.pdf
CNCF_ A step to step guide to platforming your delivery setup.pdf
 
CNCF Online - Data Protection Guardrails using Open Policy Agent (OPA).pdf
CNCF Online - Data Protection Guardrails using Open Policy Agent (OPA).pdfCNCF Online - Data Protection Guardrails using Open Policy Agent (OPA).pdf
CNCF Online - Data Protection Guardrails using Open Policy Agent (OPA).pdf
 
Securing Windows workloads.pdf
Securing Windows workloads.pdfSecuring Windows workloads.pdf
Securing Windows workloads.pdf
 
Securing Windows workloads.pdf
Securing Windows workloads.pdfSecuring Windows workloads.pdf
Securing Windows workloads.pdf
 
Advancements in Kubernetes Workload Identity for Azure
Advancements in Kubernetes Workload Identity for AzureAdvancements in Kubernetes Workload Identity for Azure
Advancements in Kubernetes Workload Identity for Azure
 

Kürzlich hochgeladen

Networking in the Penumbra presented by Geoff Huston at NZNOG
Networking in the Penumbra presented by Geoff Huston at NZNOGNetworking in the Penumbra presented by Geoff Huston at NZNOG
Networking in the Penumbra presented by Geoff Huston at NZNOGAPNIC
 
Top Rated Pune Call Girls Daund ⟟ 6297143586 ⟟ Call Me For Genuine Sex Servi...
Top Rated  Pune Call Girls Daund ⟟ 6297143586 ⟟ Call Me For Genuine Sex Servi...Top Rated  Pune Call Girls Daund ⟟ 6297143586 ⟟ Call Me For Genuine Sex Servi...
Top Rated Pune Call Girls Daund ⟟ 6297143586 ⟟ Call Me For Genuine Sex Servi...Call Girls in Nagpur High Profile
 
Lucknow ❤CALL GIRL 88759*99948 ❤CALL GIRLS IN Lucknow ESCORT SERVICE❤CALL GIRL
Lucknow ❤CALL GIRL 88759*99948 ❤CALL GIRLS IN Lucknow ESCORT SERVICE❤CALL GIRLLucknow ❤CALL GIRL 88759*99948 ❤CALL GIRLS IN Lucknow ESCORT SERVICE❤CALL GIRL
Lucknow ❤CALL GIRL 88759*99948 ❤CALL GIRLS IN Lucknow ESCORT SERVICE❤CALL GIRLimonikaupta
 
Best VIP Call Girls Noida Sector 75 Call Me: 8448380779
Best VIP Call Girls Noida Sector 75 Call Me: 8448380779Best VIP Call Girls Noida Sector 75 Call Me: 8448380779
Best VIP Call Girls Noida Sector 75 Call Me: 8448380779Delhi Call girls
 
How is AI changing journalism? (v. April 2024)
How is AI changing journalism? (v. April 2024)How is AI changing journalism? (v. April 2024)
How is AI changing journalism? (v. April 2024)Damian Radcliffe
 
Call Girls Ludhiana Just Call 98765-12871 Top Class Call Girl Service Available
Call Girls Ludhiana Just Call 98765-12871 Top Class Call Girl Service AvailableCall Girls Ludhiana Just Call 98765-12871 Top Class Call Girl Service Available
Call Girls Ludhiana Just Call 98765-12871 Top Class Call Girl Service AvailableSeo
 
Hot Service (+9316020077 ) Goa Call Girls Real Photos and Genuine Service
Hot Service (+9316020077 ) Goa  Call Girls Real Photos and Genuine ServiceHot Service (+9316020077 ) Goa  Call Girls Real Photos and Genuine Service
Hot Service (+9316020077 ) Goa Call Girls Real Photos and Genuine Servicesexy call girls service in goa
 
VIP Model Call Girls Hadapsar ( Pune ) Call ON 9905417584 Starting High Prof...
VIP Model Call Girls Hadapsar ( Pune ) Call ON 9905417584 Starting  High Prof...VIP Model Call Girls Hadapsar ( Pune ) Call ON 9905417584 Starting  High Prof...
VIP Model Call Girls Hadapsar ( Pune ) Call ON 9905417584 Starting High Prof...singhpriety023
 
Enjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort Service
Enjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort ServiceEnjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort Service
Enjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort ServiceDelhi Call girls
 
Hot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night Stand
Hot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night StandHot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night Stand
Hot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night Standkumarajju5765
 
'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...
'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...
'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...APNIC
 
Call Girls Dubai Prolapsed O525547819 Call Girls In Dubai Princes$
Call Girls Dubai Prolapsed O525547819 Call Girls In Dubai Princes$Call Girls Dubai Prolapsed O525547819 Call Girls In Dubai Princes$
Call Girls Dubai Prolapsed O525547819 Call Girls In Dubai Princes$kojalkojal131
 
Moving Beyond Twitter/X and Facebook - Social Media for local news providers
Moving Beyond Twitter/X and Facebook - Social Media for local news providersMoving Beyond Twitter/X and Facebook - Social Media for local news providers
Moving Beyond Twitter/X and Facebook - Social Media for local news providersDamian Radcliffe
 
Low Rate Young Call Girls in Sector 63 Mamura Noida ✔️☆9289244007✔️☆ Female E...
Low Rate Young Call Girls in Sector 63 Mamura Noida ✔️☆9289244007✔️☆ Female E...Low Rate Young Call Girls in Sector 63 Mamura Noida ✔️☆9289244007✔️☆ Female E...
Low Rate Young Call Girls in Sector 63 Mamura Noida ✔️☆9289244007✔️☆ Female E...SofiyaSharma5
 
INDIVIDUAL ASSIGNMENT #3 CBG, PRESENTATION.
INDIVIDUAL ASSIGNMENT #3 CBG, PRESENTATION.INDIVIDUAL ASSIGNMENT #3 CBG, PRESENTATION.
INDIVIDUAL ASSIGNMENT #3 CBG, PRESENTATION.CarlotaBedoya1
 
(+971568250507 ))# Young Call Girls in Ajman By Pakistani Call Girls in ...
(+971568250507  ))#  Young Call Girls  in Ajman  By Pakistani Call Girls  in ...(+971568250507  ))#  Young Call Girls  in Ajman  By Pakistani Call Girls  in ...
(+971568250507 ))# Young Call Girls in Ajman By Pakistani Call Girls in ...Escorts Call Girls
 
Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝soniya singh
 

Kürzlich hochgeladen (20)

Networking in the Penumbra presented by Geoff Huston at NZNOG
Networking in the Penumbra presented by Geoff Huston at NZNOGNetworking in the Penumbra presented by Geoff Huston at NZNOG
Networking in the Penumbra presented by Geoff Huston at NZNOG
 
Top Rated Pune Call Girls Daund ⟟ 6297143586 ⟟ Call Me For Genuine Sex Servi...
Top Rated  Pune Call Girls Daund ⟟ 6297143586 ⟟ Call Me For Genuine Sex Servi...Top Rated  Pune Call Girls Daund ⟟ 6297143586 ⟟ Call Me For Genuine Sex Servi...
Top Rated Pune Call Girls Daund ⟟ 6297143586 ⟟ Call Me For Genuine Sex Servi...
 
@9999965857 🫦 Sexy Desi Call Girls Laxmi Nagar 💓 High Profile Escorts Delhi 🫶
@9999965857 🫦 Sexy Desi Call Girls Laxmi Nagar 💓 High Profile Escorts Delhi 🫶@9999965857 🫦 Sexy Desi Call Girls Laxmi Nagar 💓 High Profile Escorts Delhi 🫶
@9999965857 🫦 Sexy Desi Call Girls Laxmi Nagar 💓 High Profile Escorts Delhi 🫶
 
Lucknow ❤CALL GIRL 88759*99948 ❤CALL GIRLS IN Lucknow ESCORT SERVICE❤CALL GIRL
Lucknow ❤CALL GIRL 88759*99948 ❤CALL GIRLS IN Lucknow ESCORT SERVICE❤CALL GIRLLucknow ❤CALL GIRL 88759*99948 ❤CALL GIRLS IN Lucknow ESCORT SERVICE❤CALL GIRL
Lucknow ❤CALL GIRL 88759*99948 ❤CALL GIRLS IN Lucknow ESCORT SERVICE❤CALL GIRL
 
Best VIP Call Girls Noida Sector 75 Call Me: 8448380779
Best VIP Call Girls Noida Sector 75 Call Me: 8448380779Best VIP Call Girls Noida Sector 75 Call Me: 8448380779
Best VIP Call Girls Noida Sector 75 Call Me: 8448380779
 
How is AI changing journalism? (v. April 2024)
How is AI changing journalism? (v. April 2024)How is AI changing journalism? (v. April 2024)
How is AI changing journalism? (v. April 2024)
 
Call Girls Ludhiana Just Call 98765-12871 Top Class Call Girl Service Available
Call Girls Ludhiana Just Call 98765-12871 Top Class Call Girl Service AvailableCall Girls Ludhiana Just Call 98765-12871 Top Class Call Girl Service Available
Call Girls Ludhiana Just Call 98765-12871 Top Class Call Girl Service Available
 
Hot Service (+9316020077 ) Goa Call Girls Real Photos and Genuine Service
Hot Service (+9316020077 ) Goa  Call Girls Real Photos and Genuine ServiceHot Service (+9316020077 ) Goa  Call Girls Real Photos and Genuine Service
Hot Service (+9316020077 ) Goa Call Girls Real Photos and Genuine Service
 
VIP Model Call Girls Hadapsar ( Pune ) Call ON 9905417584 Starting High Prof...
VIP Model Call Girls Hadapsar ( Pune ) Call ON 9905417584 Starting  High Prof...VIP Model Call Girls Hadapsar ( Pune ) Call ON 9905417584 Starting  High Prof...
VIP Model Call Girls Hadapsar ( Pune ) Call ON 9905417584 Starting High Prof...
 
Enjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort Service
Enjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort ServiceEnjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort Service
Enjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort Service
 
Hot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night Stand
Hot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night StandHot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night Stand
Hot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night Stand
 
'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...
'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...
'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...
 
Call Girls Dubai Prolapsed O525547819 Call Girls In Dubai Princes$
Call Girls Dubai Prolapsed O525547819 Call Girls In Dubai Princes$Call Girls Dubai Prolapsed O525547819 Call Girls In Dubai Princes$
Call Girls Dubai Prolapsed O525547819 Call Girls In Dubai Princes$
 
Moving Beyond Twitter/X and Facebook - Social Media for local news providers
Moving Beyond Twitter/X and Facebook - Social Media for local news providersMoving Beyond Twitter/X and Facebook - Social Media for local news providers
Moving Beyond Twitter/X and Facebook - Social Media for local news providers
 
Low Rate Young Call Girls in Sector 63 Mamura Noida ✔️☆9289244007✔️☆ Female E...
Low Rate Young Call Girls in Sector 63 Mamura Noida ✔️☆9289244007✔️☆ Female E...Low Rate Young Call Girls in Sector 63 Mamura Noida ✔️☆9289244007✔️☆ Female E...
Low Rate Young Call Girls in Sector 63 Mamura Noida ✔️☆9289244007✔️☆ Female E...
 
INDIVIDUAL ASSIGNMENT #3 CBG, PRESENTATION.
INDIVIDUAL ASSIGNMENT #3 CBG, PRESENTATION.INDIVIDUAL ASSIGNMENT #3 CBG, PRESENTATION.
INDIVIDUAL ASSIGNMENT #3 CBG, PRESENTATION.
 
Dwarka Sector 26 Call Girls | Delhi | 9999965857 🫦 Vanshika Verma More Our Se...
Dwarka Sector 26 Call Girls | Delhi | 9999965857 🫦 Vanshika Verma More Our Se...Dwarka Sector 26 Call Girls | Delhi | 9999965857 🫦 Vanshika Verma More Our Se...
Dwarka Sector 26 Call Girls | Delhi | 9999965857 🫦 Vanshika Verma More Our Se...
 
(INDIRA) Call Girl Pune Call Now 8250077686 Pune Escorts 24x7
(INDIRA) Call Girl Pune Call Now 8250077686 Pune Escorts 24x7(INDIRA) Call Girl Pune Call Now 8250077686 Pune Escorts 24x7
(INDIRA) Call Girl Pune Call Now 8250077686 Pune Escorts 24x7
 
(+971568250507 ))# Young Call Girls in Ajman By Pakistani Call Girls in ...
(+971568250507  ))#  Young Call Girls  in Ajman  By Pakistani Call Girls  in ...(+971568250507  ))#  Young Call Girls  in Ajman  By Pakistani Call Girls  in ...
(+971568250507 ))# Young Call Girls in Ajman By Pakistani Call Girls in ...
 
Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝
 

Why your APIs should fly first class

  • 1. Why Your APIs Should Fly First Class DeveloperWeek 2021 1
  • 2. 1 $ whoami 2 Agenda 2 What is an API first mentality? 3 How we build APIs first 4 “Build for two” 5 Tools and tricks 6 Finish!
  • 3. $ whoami My name is Robert Ross, I’m the co-founder and CEO of FireHydrant, an incident management tool. 3 bobbytables bobbytables
  • 4. Terms So we’re all on the same page ● An API is a REST API accessed via HTTP ● An Actor is a person, integration, or 3rd party performing actions ● A Frontend is a javascript application that talks to your API 4
  • 6. Dynamic frontend experiences are valuable This expectation likely comes from their experience with Facebook, Netflix, and other large tech firms with the resources to invest in complex frontend architectures. 6
  • 7. Dynamic frontend experiences are valuable A dynamic frontend experience gives the same sense of quality that a good thud of a car door gives. 7
  • 8. Dynamic frontend experiences are valuable It’s a sad reality, but if your website just doesn’t have a particular type of fancy sizzle to it, customers may think it’s “cheap.” 8
  • 9. A dynamic frontend experience is a risk 9
  • 10. Do you move that chess piece early? Hint: Yes 10
  • 11. The Bet We Made ● We made a bet in the first days of FireHydrant to build an API for everything. ● We’ve amassed over 130 public API endpoints in just over 2 years. ● We built React+Redux frontends from day 1. ● Every feature that FireHydrant exposes in the UI has an underlying API that our customers can integrate against. 11
  • 12. An early goal for FireHydrant Be an integration platform 12
  • 13. Be an integratable platform ● This means everything our platform could do, our customers can also programmatically integrate with us ● It also meant that we had to consider our API design earlier than most startups do 13
  • 14. Be an integratable platform ● An API first mentality also changed our database design to accompany different actors ● We built a frontend accessing an API from the start, creating the need for well defined engineering roles early on. 14
  • 16. “It’s expensive” ● Building an API first and then building a frontend is more expensive… initially. ● Eventually the benefit of having that API early will exceed that initial cost by orders of magnitude. ○ Want to release a mobile app in 2 years? Guess what, you have an API already. ○ Customers that integrate are less likely churn. ○ Etc etc 16
  • 17. “It’s time consuming” ● If you have any reason to think your company will be successful, an API from the start will give you a leg up against your competitors. 17
  • 18. So what does “API First” mean? 18
  • 19. Literally don’t build a user interface until you have an API 19
  • 20. Your API should be a bin of legos ● Break feature specs down only by what the feature does, not what it looks like. ● When you add start mixing UI with behavior, your application will have a hard time becoming a platform for others to integrate with. ● When behavior is exposed via an API, actors (internally or externally) can start imagining a UI for themselves, and use the bricks provided to execute. 20 API User Interface
  • 21. This doesn’t mean building APIs blindly! It’s a breakdown of how we build an end result for customers 21
  • 22. I’d wager 90% of companies build software this way 22 Product Planning Write a story (Clubhouse, Jira) Engineering builds feature Ship it Feature specification, wireframes, acceptance criteria, why we’re building it Iteration planning, team assignment, “Given, When, Then” Take wireframes, design, acceptance criteria, build it Deliver to customers, announce, move on Mixing UI + Behavior together (This forces the need for full-stack engineers in many companies)
  • 23. Subtle differences You need to break this process down to be able to build APIs first 23
  • 24. 24 Feature Team Composition Our Integrations Team UX/UI Design Frontend Engineering Product Manager Backend Engineering SRE (floating)
  • 25. You need a design first (we use Figma) 25 Even a lo-fi, sharpie version works UX/UI Design
  • 26. That allows your team to discover which APIs are needed 26 Product Manager Backend Engineering
  • 27. This allows you to build an API first 27 The frontend work can be done async as well Backend Engineering
  • 28. Then we have a fully functional frontend 28 Built by separate engineers, with separate pull requests Frontend Engineering Backend Engineering
  • 29. Why is this better? 29
  • 30. Building an API first is a forcing function ● This process would never work unless every person is on the same page. ● We’ve designed our feature teams to be tight-knit in order to ship backends and frontends in async. ● This points everyone on the feature team in the same direction. 30
  • 31. Building an API first is a forcing function ● It creates interfaces that your customers can now interface with. ● A platform that people can integrate with means tighter customer bonds. ● It generates conversations amongst the team that might not otherwise happen. 31
  • 32. Build for two How to build an API that lasts 32
  • 33. API Access And why you should never tie records to users 33
  • 34. Actors ● While a user will make a request to your API from your frontend, you must account for other actors. ● Access to your API should not be restricted to just user accounts. ● Build in authentication / authorization modes that allow for both people and programs. ● Your underlying data model needs to change. APIs are meant for computers 34 User Integration Bot Your API
  • 35. Data model considerations ● Your data model needs to support the idea of multiple actors creating and modifying data. ● Most systems have a “god object”, User, that everything has an association to. ○ This needs to change in order to build a integratable platform. ○ You can use polymorphism or a single entity with a type to achieve this. 35 Actors User Integration Bot
  • 36. FireHydrant’s Data Model 36 Actors User Integration Bot POST /v1/incidents CREATE TABLE public.incidents ( id uuid DEFAULT public.gen_random_uuid () NOT NULL, name character varying NOT NULL, description text DEFAULT ''::text NOT NULL, created_at timestamp without time zone NOT NULL, updated_at timestamp without time zone NOT NULL, status integer DEFAULT 0 NOT NULL, created_by_type character varying, created_by_id uuid, organization_id uuid NOT NULL ); Our database is heavily polymorphic, allowing us to store multiple actor types on records such as incidents. This is a snippet of our incidents schema. Declare an incident endpoint, which stores who/what opened the incident
  • 37. Alternative Data Model 37 Actor User Bot Integration Incident Actor is associated to one of user, bot, or integration (polymorphic) and all other records simply associate to a single actor record Runbook Etc... (I wish we did this instead in hindsight)
  • 38. What does this unlock? ● You can now separate types of actors in your application with ease. Not everyone is a “user”. ● If a data model associates everything to a user via the API, what happens when that person leaves the company? ○ Hint: All the integrations you built with that users’ account break. ● All created via the same APIs your frontend uses. 38 FireH ydrant U ser Slack User
  • 39. Allow for many And constrain to one 39
  • 40. Think two+ features ahead 40 ● A golden rule I follow: It’s ok for an array to have one element in it in your API. ● It’s common a mistake to restrict your JSON schema to a singular object, and later on you need to add another. ● It’s much easier to constrain to one in code, but allow for multiple in your database.
  • 41. Story time Where build for two would have saved me a headache at Namely, an HR SaaS. 41
  • 42. People can only report to one person at a company right? 42
  • 43. The dotted line reporting relationship is a weaker relationship. The dotted line manager still has a formal right to some part of the individual’s time and attention and will usually set some of goals. But it is not a strong relationship as a solid line. Nope! 43
  • 44. Simple JSON of the profiles endpoint at Namely 44
  • 45. What if we built for two... 45 ● The JSON only supported one “reports_to” field even though the product now supports multiple reports_to (with dotted line managers) ● This situation is the worst case scenario because JSON API’s can’t change without heavy notice or complete deprecation ● This potentially could have been avoided if we thought two features ahead.
  • 46. Reports to could be an array 46
  • 47. What if we built for two... 47 ● These opinions are mostly from putting my hand on a hot stove over the last 10 years ● Early decisions don’t always have to be “gotta go fast” mentality ● You can often build a model that will last you years if you think 2 features away. ● IE: We have users now, but will we have companies? Will we have multiple payment profiles?
  • 48. Tools and tricks To deliver great APIs 48
  • 49. Document in tandem ● While you’re building your API, please, oh please, document it as you go. ○ No one wants to go back and document 100+ endpoints. ● Use the OpenAPI specification (Swagger) to quickly generate documentation. ● Use something that plugs into your framework that can generate this OpenAPI spec for you. ○ We use Grape + Grape Swagger. 49
  • 50. Documentation Hosting ● There are a few options out there for API documentation hosting. I personally prefer stoplight.io ● They can read a OpenAPI specification and generate nice documentation as well as a “Try It” page for every endpoint. ● There are a few others out there as well. 50
  • 51. APIs at FireHydrant A first class feature 51
  • 52. It’s APIs all the way down ● All of our customers can access the FireHydrant API that our UI does. ● This means our customers get the same guarantees that our frontend gets, it’s not an afterthought. ● OpenAPI spec allows us to generate documentation websites and clients with ease. 52 developers.firehydrant.io
  • 53. Build an API first. Future you will love you for it. 53
  • 55. 55 Stop by our booth in the Expo for a chance to win Airpods Max