{
  "id": "7de3968bed39",
  "url": "https://cloud.google.com/blog/products/application-development/api-design-why-you-should-use-links-not-keys-to-represent-relationships-in-apis",
  "title": "API design: Why you should use links, not keys, to represent relationships in APIs | Google Cloud Blog",
  "note": "I am a fan of this concept and have advocated for it in platforms for a while, particularly large and complicated platforms, which most are.\n\n> Viewed from an implementation point of view, replacing all the database keys with links is a fairly simple change—the server converted the database foreign keys into URLs so the client didn't have to—but it significantly simplifies the API and reduces the coupling of the client and the server. Many URI templates that were essential for the first design are no longer required and can be removed from the API specification and documentation.\n\nThink of your platform as a little web (lowercase w) of it’s own, and using links to establish the relationships. 🔗",
  "voice": "mixed",
  "saved": "2019-05-14T10:51:22Z",
  "host": "cloud.google.com",
  "kind": "page",
  "tags": [],
  "record": "https://links.thingelstad.xyz/links/7de3968bed39/",
  "markdown": "https://links.thingelstad.xyz/links/7de3968bed39.md",
  "issues": [
    {
      "number": 106,
      "slug": "weekly-thing-106-may-18-2019",
      "title": "Weekly Thing #106 / May 18, 2019",
      "date": "2019-05-18T12:00:00Z",
      "section": "Notable Links 📌",
      "position": 8,
      "url": "https://weekly.thingelstad.com/archive/106/",
      "page": "https://links.thingelstad.xyz/issues/106/"
    }
  ],
  "connections": {
    "same_host": {
      "count": 15,
      "page": "https://links.thingelstad.xyz/hosts/cloud.google.com/",
      "nearest": [
        {
          "id": "d051ff8d2d93",
          "title": "Knative - Built on Kubernetes and Istio  |  Google Cloud",
          "url": "https://cloud.google.com/knative/",
          "record": "https://links.thingelstad.xyz/links/d051ff8d2d93/"
        },
        {
          "id": "c08ba2d33469",
          "title": "Announcing Snowflake on Google Cloud Platform | Google Cloud Blog",
          "url": "https://cloud.google.com/blog/products/data-analytics/announcing-snowflake-on-google-cloud-platform",
          "record": "https://links.thingelstad.xyz/links/c08ba2d33469/"
        },
        {
          "id": "fe34ae120edd",
          "title": "An update on Sunday’s service disruption | Google Cloud Blog",
          "url": "https://cloud.google.com/blog/topics/inside-google-cloud/an-update-on-sundays-service-disruption",
          "record": "https://links.thingelstad.xyz/links/fe34ae120edd/"
        },
        {
          "id": "df59247aa0d1",
          "title": "Women in leadership: Why Diversity, Equity and Inclusion matters at Google Cloud | Google Cloud Blog",
          "url": "https://cloud.google.com/blog/topics/inside-google-cloud/why-diversity-equity-and-inclusion-matters-at-google-cloud",
          "record": "https://links.thingelstad.xyz/links/df59247aa0d1/"
        },
        {
          "id": "ad84f7e4cf8a",
          "title": "Retailers unwrap a successful 2021 holiday season with Google’s Black Friday/Cyber Monday program",
          "url": "https://cloud.google.com/blog/topics/retail/2021-black-friday-cyber-monday-season-recap-with-google-cloud/",
          "record": "https://links.thingelstad.xyz/links/ad84f7e4cf8a/"
        }
      ]
    },
    "same_week": {
      "count": 19,
      "nearest": [
        {
          "id": "ffa3095ba3de",
          "title": "Why Go? – Key advantages you may have overlooked · YourBasic Go",
          "url": "https://yourbasic.org/golang/advantages-over-java-python/",
          "record": "https://links.thingelstad.xyz/links/ffa3095ba3de/"
        },
        {
          "id": "fe198f8097d7",
          "title": "Amazon S3 Path Deprecation Plan – The Rest of the Story | AWS News Blog",
          "url": "https://aws.amazon.com/blogs/aws/amazon-s3-path-deprecation-plan-the-rest-of-the-story/",
          "record": "https://links.thingelstad.xyz/links/fe198f8097d7/"
        },
        {
          "id": "d8b7b1973bcb",
          "title": "Denver votes to decriminalise magic mushrooms by razor-thin margin - BBC News",
          "url": "https://www.bbc.com/news/world-us-canada-48185366",
          "record": "https://links.thingelstad.xyz/links/d8b7b1973bcb/"
        },
        {
          "id": "dfb45fdff7c9",
          "title": "Disrupting the Tech Profession’s Gender Gap",
          "url": "https://www.shrm.org/hr-today/news/all-things-work/pages/disrupting-the-tech-profession-gender-gap.aspx",
          "record": "https://links.thingelstad.xyz/links/dfb45fdff7c9/"
        },
        {
          "id": "ce47dc3d0fac",
          "title": "Cooking As A Service – danco.blog",
          "url": "https://alexdanco.com/2019/05/09/cooking-as-a-service/",
          "record": "https://links.thingelstad.xyz/links/ce47dc3d0fac/"
        }
      ]
    },
    "mentions": [],
    "mentioned_by": [],
    "saved_twice": []
  },
  "elsewhere": {
    "wayback": "https://web.archive.org/web/*/https://cloud.google.com/blog/products/application-development/api-design-why-you-should-use-links-not-keys-to-represent-relationships-in-apis"
  }
}
