An API or application programmable interface is a software contract that defines the expectations and interactions of a piece of code exposed to external users. This includes the parameters, response, errors, and API name.
We discuss how to design an API and what it takes to make the design scalable, extensible, and easy to use. HTTP APIs are widely used in software systems. HTTP is a stateless protocol, and systems often expose APIs using it.
00:00 Who should watch this?
00:13 What is an API?
01:41 Best Practices
02:22 Naming APIs
02:43 Define Parameters
03:29 Define Response Objects
05:02 Define Errors
06:22 HTTP Endpoints
07:47 GET vs. POST
09:10 Side Effects
12:09 Pagination
13:51 Data Consistency
15:11 Thank you!
Recommended system design video course:
https://interviewready.io
Along with video lectures, this course has architecture diagrams, capacity planning, API contracts, and evaluation tests. It's a complete package.
References:
https://medium.com/airbnb-engineering/building-services-at-airbnb-part-1-c4c1d8fa811b
https://swagger.io/docs/specification/about/
Designing Data-Intensive Applications -
https://amzn.to/2yQIrxH
System Design Playlist:
https://www.youtube.com/playlist?list=PLMCXHnjXnTnvo6alSjVkgxV-VH6EPyvoX
You can follow me on:
Facebook:
https://facebook.com/gkcs0/
Quora:
https://www.quora.com/profile/Gaurav-Sen-6
LinkedIn:
https://www.linkedin.com/in/gaurav-sen-56b6a941/
Тэги:
#system_design #interview_preparation #interviews #software_interview #design_interview #programming_interview #gaurav_sen #api_design #application_programmable_interface #application_programming_interface #what_is_api #what_is_an_api #api_parameters #http_api #api_endpoint #http_endpoint