Syntax - Tasty Web Development Treats
How to Build an API
In this episode, Scott and Wes talk about creating APIs — what’s happening behind the scenes and why it’s important.
Sanity - SponsorSanity.io is a real-time headless CMS with a fully customizable Content Studio built in React. Get a Sanity powered site up and running in minutes at sanity.io/create. Get an awesome supercharged free developer plan on sanity.io/syntax.
Sentry - SponsorIf you want to know what’s happening with your errors, track them with Sentry. Sentry is open-source error tracking that helps developers monitor and fix crashes in real time. Cut your time on error resolution from five hours to five minutes. It works with any language and integrates with dozens of other services. Syntax listeners can get two months for free by visiting Sentry and using the coupon code “tastytreat”.
Show Notes2:15 - How do you build an API from scratch?
3:54 - Choose an API type
8:15 - Setup some sort of server that will accept requests and send responses
11:11 - Document the endpoints
- What is the end point
- What parameters are required
- Filters
- Sorting
- Headers required
- What you get back when you hit this endpoint
- Any request limits
- Examples in common languages
- JS
- PHP
- Ruby
21:20 - Naming
- Make it obvious
27:39 - Securing
- Only accept requests from logged-in users
- oAuth
- Cookie/Session
- jwt
- API key
- CORS
- Check roles - access level
- Syntax 055: Hasty Treat - User Role Systems
32:42 - Protecting
- Rate limit
- Whitelist / blacklist
- Cloudflare
36:00 - Write resolvers
- Modify data if needed
- Send back the data requested
- Send back the correct HTTP code
- Log what happened
37:56 - Tools
Links ××× SIIIIICK ××× PIIIICKS ×××- Scott: Hoax Podcast
- Wes: Solar Lights
- Scott: LevelUpTutorials Pro - Advanced Gatsby & Shopify
- Wes: All Courses - Use the coupon code ‘Syntax’ for $10 off!
- Scott’s Instagram
- LevelUpTutorials Instagram
- Wes’ Instagram
- Wes’ Twitter
- Wes’ Facebook
- Scott’s Twitter
- Make sure to include @SyntaxFM in your tweets