-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
adding contract api blog post outline
- Loading branch information
1 parent
bfabcf9
commit 724b556
Showing
9 changed files
with
64 additions
and
36 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,21 @@ | ||
export const SITE_TITLE = 'harrisoncramer.me'; | ||
export const SITE_DESCRIPTION = 'Welcome to my website! This is my personal software engineering blog. I write about Go, Typescript, React, Vue, Javascript, Docker, Kubernetes, and lots of other interesting technologies.'; | ||
export const TAGS = ["neovim", "ci", "javascript", "microservices", "docker", "debugging", "golang", "astro", "typescript", "kubernetes", "circleci", "react", "terraform", "aws"] as const | ||
export const TAGS = [ | ||
"neovim", | ||
"ci", | ||
"javascript", | ||
"microservices", | ||
"docker", | ||
"debugging", | ||
"go", | ||
"astro", | ||
"typescript", | ||
"kubernetes", | ||
"circleci", | ||
"react", | ||
"terraform", | ||
"aws", | ||
"api", | ||
"neovim", | ||
"lua" | ||
] as const |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
--- | ||
title: Modeling Domain State with Contract Driven APIs | ||
pubDate: 2024-08-15 | ||
description: Different approaches to enforcing schemas across API boundaries | ||
imageDescription: A contract | ||
heroImage: contract | ||
tags: ["typescript", "javascript", "api", "go"] | ||
slug: contract-driven-apis-in-typescript.mdx | ||
--- | ||
|
||
One point of friction that often slows down engineering teams is a misunderstanding about API contracts. | ||
|
||
Whether it's hotels or online dating, as engineering teams learn more about the domain they're working in, they'll need to adjust parts of the application's data model. Sometimes, this is to correct misconceptions that they originally baked into their APIs. Other times, it's to add new areas of the domain to that they haven't encountered before. | ||
|
||
Bit by bit, the team's original mental model of the domain will shift, especially as APIs are deprecated or become bloated with old data. | ||
|
||
When this happens, having a shared API contract across the engineering team is very valuable. | ||
|
||
As requirements change and the application grows, the contract serves as a guidepost for engineers on both sides of the stack. | ||
|
||
This blog outlines three possible approaches to enforcing and sharing a schema in order to enforce consistency in API design. | ||
|
||
## OpenAPI and Code Generation | ||
|
||
## TRPC | ||
|
||
## JSON Schema |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters