# REST APIs

Published articles for REST APIs.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## How to Connect Your Twilio Agent to External APIs in Node.js

DevFeed: [How to Connect Your Twilio Agent to External APIs in Node.js](<https://devfeed.tech/articles/how-to-connect-your-twilio-agent-to-external-apis-in-node-js-26245.md>)

Original publisher: [Read original article](<https://www.twilio.com/en-us/blog/developers/tutorials/product/how-to-connect-twilio-agent-to-external-apis-nodejs>)

Author: Dhruv Patel, Amanda Lange

Published: 2026-09-14T00:00:00Z

Content type: tutorial

Language: en

Sources: [Twilio Blog](<https://devfeed.tech/sources/twilio-blog.md>)

Topics: [AI Agent](<https://devfeed.tech/topics/ai-agent.md>), [Node.js](<https://devfeed.tech/topics/node-js.md>), [voice ai](<https://devfeed.tech/topics/voice-ai.md>), [REST API](<https://devfeed.tech/topics/rest-api.md>), [OpenAI](<https://devfeed.tech/topics/openai.md>), [Express](<https://devfeed.tech/topics/express.md>)

Tags: [agent](<https://devfeed.tech/tags/agent.md>), [ai](<https://devfeed.tech/tags/ai.md>), [ai-agent](<https://devfeed.tech/tags/ai-agent.md>), [developer-insights](<https://devfeed.tech/tags/developer-insights.md>), [environment-variables](<https://devfeed.tech/tags/environment-variables.md>), [node-js](<https://devfeed.tech/tags/node-js.md>), [openai](<https://devfeed.tech/tags/openai.md>), [rest-apis](<https://devfeed.tech/tags/rest-apis.md>), [visual-studio-code](<https://devfeed.tech/tags/visual-studio-code.md>), [voice](<https://devfeed.tech/tags/voice.md>)

### AI overview

This tutorial explains how to build a voice-enabled AI agent in Node.js with Twilio Conversation Relay and OpenAI. The agent uses LLM-driven tool calling to retrieve live data and take actions through an external REST API.

### Source excerpt

Build a voice-enabled AI agent in Node.js with Twilio Conversation Relay and OpenAI to dynamically fetch live data from external REST APIs.

## MCP vs API

DevFeed: [MCP vs API](<https://devfeed.tech/articles/mcp-vs-api-30877.md>)

Original publisher: [Read original article](<https://www.rogerperkin.co.uk/api/mcp-vs-api/>)

Author: Roger Perkin

Published: 2026-08-14T07:35:02Z

Content type: article

Language: en

Sources: [Roger Perkin Network Automation Consultant](<https://devfeed.tech/sources/roger-perkin-network-automation-consultant.md>)

Topics: [MCP vs API](<https://devfeed.tech/topics/mcp-vs-api.md>), [API](<https://devfeed.tech/topics/api.md>), [Model Context Protocol](<https://devfeed.tech/topics/model-context-protocol.md>), [AI Models](<https://devfeed.tech/topics/ai-models.md>), [Protocol (disambiguation)](<https://devfeed.tech/topics/protocol.md>)

Tags: [ai-models](<https://devfeed.tech/tags/ai-models.md>), [api](<https://devfeed.tech/tags/api.md>), [json-rpc](<https://devfeed.tech/tags/json-rpc.md>), [mcp](<https://devfeed.tech/tags/mcp.md>), [mcp-vs-api](<https://devfeed.tech/tags/mcp-vs-api.md>), [rest-apis](<https://devfeed.tech/tags/rest-apis.md>), [rpc](<https://devfeed.tech/tags/rpc.md>), [vs](<https://devfeed.tech/tags/vs.md>)

### AI overview

This article explains that MCP and APIs serve different purposes. APIs connect software systems through predefined endpoints, while MCP lets AI models discover and use tools dynamically. MCP does not replace APIs; it operates on top of existing APIs as a standardized, AI-friendly translation layer.

### Source excerpt

Ever since MCP became popular, I hear people saying "does MCP replace APIs?" Or do they both solve completely different problems? Firstly the facts: APIs connect software systems through predefined endpoints, while MCP enables AI models to discover and use tools dynamically. So, they are two different things, but can MCP replace APIs? More discussions ...

## Apollo is Recognized in Gartner® Voice of the Customer

DevFeed: [Apollo is Recognized in Gartner® Voice of the Customer](<https://devfeed.tech/articles/apollo-is-recognized-in-gartner-voice-of-the-customer-23199.md>)

Original publisher: [Read original article](<https://www.apollographql.com/blog/apollo-is-recognized-in-gartner-voice-of-the-customer>)

Author: Ilan Belehssen

Published: 2026-04-29T16:05:06Z

Content type: release

Language: en

Sources: [Apollo Blog](<https://devfeed.tech/sources/apollo-blog.md>)

Topics: [API](<https://devfeed.tech/topics/api.md>), [GraphOS](<https://devfeed.tech/topics/graphos.md>)

Tags: [2026](<https://devfeed.tech/tags/2026.md>), [announcement](<https://devfeed.tech/tags/announcement.md>), [api-management](<https://devfeed.tech/tags/api-management.md>), [apollo](<https://devfeed.tech/tags/apollo.md>), [apollo-connectors](<https://devfeed.tech/tags/apollo-connectors.md>), [customers](<https://devfeed.tech/tags/customers.md>), [graphos](<https://devfeed.tech/tags/graphos.md>), [report](<https://devfeed.tech/tags/report.md>), [rest-apis](<https://devfeed.tech/tags/rest-apis.md>)

### AI overview

Apollo announces that it was recognized for the first time in the 2026 Gartner Peer Insights "Voice of the Customer" report for API Management. The article reports a 4.7 out of 5 rating from 55 verified enterprise reviewers, with 98% saying they would recommend Apollo as of January 31, 2026, and says Apollo was named a Strong Performer.

### Source excerpt

Apollo has been recognized in the 2026 Gartner Peer Insights "Voice of the Customer" for API Management for the first time

## Cursor Pagination vs Offset Pagination: Which One Should You Use?

DevFeed: [Cursor Pagination vs Offset Pagination: Which One Should You Use?](<https://devfeed.tech/articles/cursor-pagination-vs-offset-pagination-which-one-should-you-use-39652.md>)

Original publisher: [Read original article](<https://www.gauravsarma.com/posts/2026-03-11_cursor-pagination-vs-offset-pagination>)

Published: 2026-03-11T00:00:00Z

Content type: tutorial

Language: en

Sources: [Gaurav Sarma's Blog](<https://devfeed.tech/sources/gaurav-sarma-s-blog.md>)

Topics: [API](<https://devfeed.tech/topics/api.md>), [Databases](<https://devfeed.tech/topics/databases.md>), [SQL](<https://devfeed.tech/topics/sql.md>), [Query (disambiguation)](<https://devfeed.tech/topics/query.md>)

Tags: [api](<https://devfeed.tech/tags/api.md>), [apis](<https://devfeed.tech/tags/apis.md>), [b-tree](<https://devfeed.tech/tags/b-tree.md>), [database](<https://devfeed.tech/tags/database.md>), [index](<https://devfeed.tech/tags/index.md>), [indexes](<https://devfeed.tech/tags/indexes.md>), [query-planner](<https://devfeed.tech/tags/query-planner.md>), [rest-apis](<https://devfeed.tech/tags/rest-apis.md>)

### AI overview

This tutorial compares offset, cursor, and keyset pagination for REST APIs. It explains that offset pagination becomes slower at deep pages because the database scans and discards preceding rows, while concurrent inserts can cause duplicates or skipped results. Cursor pagination uses an indexed position for more consistent performance but does not support random page access; keyset pagination generalizes the approach to arbitrary sort orders.

### Source excerpt

. [Cursor vs Offset Pagination](cursor-pagination-vs-offset-pagination-cover...

## How Block Scaled Graph Adoption with Apollo and AI

DevFeed: [How Block Scaled Graph Adoption with Apollo and AI](<https://devfeed.tech/articles/how-block-scaled-graph-adoption-with-apollo-and-ai-23359.md>)

Original publisher: [Read original article](<https://www.apollographql.com/blog/how-block-scaled-graph-adoption-with-apollo-and-ai>)

Author: Valeria Gomez

Published: 2025-11-24T12:30:00Z

Content type: article

Language: en

Sources: [Apollo Blog](<https://devfeed.tech/sources/apollo-blog.md>)

Topics: [GraphQL](<https://devfeed.tech/topics/graphql.md>), [Apollo Connectors](<https://devfeed.tech/topics/apollo-connectors.md>), [Model Context Protocol](<https://devfeed.tech/topics/model-context-protocol.md>), [AI Agent](<https://devfeed.tech/topics/ai-agent.md>), [gRPC](<https://devfeed.tech/topics/grpc.md>), [API](<https://devfeed.tech/topics/api.md>), [Tooling](<https://devfeed.tech/topics/tooling.md>)

Tags: [ai-agent](<https://devfeed.tech/tags/ai-agent.md>), [apollo-connectors](<https://devfeed.tech/tags/apollo-connectors.md>), [events](<https://devfeed.tech/tags/events.md>), [graphql](<https://devfeed.tech/tags/graphql.md>), [learn](<https://devfeed.tech/tags/learn.md>), [mcp](<https://devfeed.tech/tags/mcp.md>), [rest-apis](<https://devfeed.tech/tags/rest-apis.md>), [services](<https://devfeed.tech/tags/services.md>), [software](<https://devfeed.tech/tags/software.md>)

### AI overview

The article recaps Block's GraphQL Summit 2025 session on scaling graph adoption. Block used Apollo Connectors to bring gRPC services onto a federated graph through their existing JSON translation layer, then combined Apollo MCP Server with its open-source AI agent Goose to generate Connector schemas, directives, types, and tests.

### Source excerpt

A recap from Block's GraphQL Summit 2025 session on scaling graph adoption with Apollo Connectors, Apollo MCP, and AI When Block's GraphQL platform team discovered Apollo Connectors, they saw a path to bring thousands of existing APIs onto the graph without asking hundreds of engineering teams to run new services or learn new tooling.

## Simplify Your REST API Logic in React with Connectors for REST APIs and GraphQL

DevFeed: [Simplify Your REST API Logic in React with Connectors for REST APIs and GraphQL](<https://devfeed.tech/articles/simplify-your-rest-api-logic-in-react-with-connectors-for-rest-apis-and-graphql-23521.md>)

Original publisher: [Read original article](<https://www.apollographql.com/blog/simplify-your-rest-api-logic-in-react-with-connectors-for-rest-apis-and-graphql>)

Author: Amanda Martin

Published: 2025-05-28T16:41:05Z

Content type: tutorial

Language: en

Sources: [Apollo Blog](<https://devfeed.tech/sources/apollo-blog.md>)

Topics: [Apollo Connectors](<https://devfeed.tech/topics/apollo-connectors.md>), [GraphQL](<https://devfeed.tech/topics/graphql.md>), [React](<https://devfeed.tech/topics/react.md>), [REST API](<https://devfeed.tech/topics/rest-api.md>), [Next.js](<https://devfeed.tech/topics/next-js.md>)

Tags: [apollo-connectors](<https://devfeed.tech/tags/apollo-connectors.md>), [graphql](<https://devfeed.tech/tags/graphql.md>), [next-js](<https://devfeed.tech/tags/next-js.md>), [react](<https://devfeed.tech/tags/react.md>), [rest-apis](<https://devfeed.tech/tags/rest-apis.md>)

### AI overview

This tutorial shows how to replace repetitive REST API fetch orchestration in a React or Next.js application with a GraphQL layer powered by Apollo Connectors. It demonstrates defining a schema that combines earthquake and location data from REST services without custom resolvers or backend logic.

### Source excerpt

If you've built a React or Next.js app that talks to multiple REST APIs, you've probably got a file like actions.ts set up as a central spot for fetch calls to public services like the USGS Earthquake API or Nominatim's reverse geocoder. It works, but the code often ends up repetitive, brittle, and difficult to maintain or scale when different endpoints need to talk to each other.

## JSON - The Fine Print: Part 3 - Zero vs Missing Values

DevFeed: [JSON - The Fine Print: Part 3 - Zero vs Missing Values](<https://devfeed.tech/articles/json-the-fine-print-part-3-zero-vs-missing-values-22281.md>)

Original publisher: [Read original article](<https://www.ardanlabs.com/blog/2025/05/json-the-fine-print-part-3.html>)

Published: 2025-05-19T00:00:00Z

Content type: tutorial

Language: en

Sources: [William Kennedy](<https://devfeed.tech/sources/william-kennedy.md>)

Topics: [JSON](<https://devfeed.tech/topics/json.md>), [Go Language](<https://devfeed.tech/topics/go-language.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [api-layers](<https://devfeed.tech/tags/api-layers.md>), [code](<https://devfeed.tech/tags/code.md>), [common-serialization-errors](<https://devfeed.tech/tags/common-serialization-errors.md>), [data-serialization](<https://devfeed.tech/tags/data-serialization.md>), [data-structure-separation](<https://devfeed.tech/tags/data-structure-separation.md>), [data-transmission](<https://devfeed.tech/tags/data-transmission.md>), [data-validation](<https://devfeed.tech/tags/data-validation.md>), [encoding-json](<https://devfeed.tech/tags/encoding-json.md>), [go](<https://devfeed.tech/tags/go.md>), [go-json-types](<https://devfeed.tech/tags/go-json-types.md>), [go-language-serialization](<https://devfeed.tech/tags/go-language-serialization.md>), [go-language-validation](<https://devfeed.tech/tags/go-language-validation.md>), [go-type-mapping](<https://devfeed.tech/tags/go-type-mapping.md>), [json](<https://devfeed.tech/tags/json.md>), [json-best-practices](<https://devfeed.tech/tags/json-best-practices.md>), [json-go-mapping](<https://devfeed.tech/tags/json-go-mapping.md>), [json-marshaling](<https://devfeed.tech/tags/json-marshaling.md>), [json-unmarshaling](<https://devfeed.tech/tags/json-unmarshaling.md>), [json-validation](<https://devfeed.tech/tags/json-validation.md>), [passing-serialized-data](<https://devfeed.tech/tags/passing-serialized-data.md>), [rest-apis](<https://devfeed.tech/tags/rest-apis.md>), [schema-less-data-format](<https://devfeed.tech/tags/schema-less-data-format.md>), [serialization](<https://devfeed.tech/tags/serialization.md>), [serialization-mistakes](<https://devfeed.tech/tags/serialization-mistakes.md>), [serialization-protocols](<https://devfeed.tech/tags/serialization-protocols.md>), [unmarshalling](<https://devfeed.tech/tags/unmarshalling.md>)

### AI overview

This tutorial examines how to distinguish zero values from missing or NULL fields when consuming JSON in Go. It explains basic unmarshalling into structs, notes that absent fields do not cause errors, and introduces DisallowUnknownFields for validating exact JSON input.

### Source excerpt

Introduction In part 1 we took a higher level view on serialization in general and JSON in specific. In part 2 we looked at emitting JSON. In part 3, we'll look at an issue you might encounter when consuming JSON, Zero vs NULL field values. To clarify the definition of NULL, this means the absence of value. So here is the question: Given a field in a Go struct set to its zero value, how do you know that zero value was set by the user or it's zero because it was never provided?

## Start building REST APIs with Django REST Framework

DevFeed: [Start building REST APIs with Django REST Framework](<https://devfeed.tech/articles/start-building-rest-apis-with-django-rest-framework-17873.md>)

Original publisher: [Read original article](<https://www.codemotion.com/magazine/backend/start-building-rest-apis-with-django-rest-framework/>)

Author: raffaelegrieco.it

Published: 2025-05-13T09:45:18Z

Content type: tutorial

Language: en

Sources: [Backend Job: skill, salary and insights - Codemotion Magazine](<https://devfeed.tech/sources/backend-job-skill-salary-and-insights-codemotion-magazine.md>)

Topics: [Django](<https://devfeed.tech/topics/django.md>), [API](<https://devfeed.tech/topics/api.md>), [Python](<https://devfeed.tech/topics/python.md>), [Framework](<https://devfeed.tech/topics/framework.md>), [CRUD](<https://devfeed.tech/topics/crud.md>), [Authentication](<https://devfeed.tech/topics/authentication.md>), [Authorization](<https://devfeed.tech/topics/authorization.md>)

Tags: [api](<https://devfeed.tech/tags/api.md>), [authentication](<https://devfeed.tech/tags/authentication.md>), [authorization](<https://devfeed.tech/tags/authorization.md>), [backend](<https://devfeed.tech/tags/backend.md>), [django](<https://devfeed.tech/tags/django.md>), [guide](<https://devfeed.tech/tags/guide.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [json](<https://devfeed.tech/tags/json.md>), [process](<https://devfeed.tech/tags/process.md>), [python](<https://devfeed.tech/tags/python.md>), [rest-apis](<https://devfeed.tech/tags/rest-apis.md>), [routing](<https://devfeed.tech/tags/routing.md>), [web-apis](<https://devfeed.tech/tags/web-apis.md>)

### AI overview

A step-by-step tutorial on building REST APIs with Django REST Framework in Python. It covers serializers, views, URL routing, CRUD operations, HTTP requests, authentication, authorization, filtering, throttling, pagination, and browsable API tools.

### Source excerpt

Django REST Framework (DRF) is one of the most powerful and flexible tools for building RESTful APIs in Python. This article will guide you step by step through the process of creating your first API endpoint, covering the use of serializers, views, and URL routing. In my previous article, we discussed how to structure your... Read more The post Start building REST APIs with Django REST Framework appeared first on Codemotion Magazine.

## Why Directly Generating MCP Servers from OpenAPI Schemas Can Be Problematic

DevFeed: [Why Directly Generating MCP Servers from OpenAPI Schemas Can Be Problematic](<https://devfeed.tech/articles/auto-generating-mcp-servers-from-openapi-schemas-yay-or-nay-4999.md>)

Original publisher: [Read original article](<https://neon.com/blog/autogenerating-mcp-servers-openai-schemas>)

Author: David Gomes

Published: 2025-05-01T19:07:18Z

Content type: article

Language: en

Sources: [Blog -- Neon Docs](<https://devfeed.tech/sources/blog-neon-docs.md>)

Topics: [Model Context Protocol](<https://devfeed.tech/topics/model-context-protocol.md>), [OpenAPI Specification](<https://devfeed.tech/topics/openapi.md>), [Large Language Model](<https://devfeed.tech/topics/llm.md>), [API](<https://devfeed.tech/topics/api.md>), [REST API](<https://devfeed.tech/topics/rest-api.md>), [GitHub API](<https://devfeed.tech/topics/github-api.md>), [FastAPI](<https://devfeed.tech/topics/fastapi.md>), [Claude](<https://devfeed.tech/topics/claude.md>), [cursor](<https://devfeed.tech/topics/cursor.md>)

Tags: [agents](<https://devfeed.tech/tags/agents.md>), [api](<https://devfeed.tech/tags/api.md>), [claude](<https://devfeed.tech/tags/claude.md>), [cursor](<https://devfeed.tech/tags/cursor.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [fastapi](<https://devfeed.tech/tags/fastapi.md>), [github](<https://devfeed.tech/tags/github.md>), [llms](<https://devfeed.tech/tags/llms.md>), [mcp](<https://devfeed.tech/tags/mcp.md>), [openapi](<https://devfeed.tech/tags/openapi.md>), [product](<https://devfeed.tech/tags/product.md>), [rest-apis](<https://devfeed.tech/tags/rest-apis.md>)

### AI overview

The article examines whether existing REST APIs and OpenAPI schemas should be converted directly into Model Context Protocol servers. It argues that one-to-one generation can overwhelm language models with too many tools and complex JSON parameters, making tool selection unreliable, especially for large or sensitive APIs.

### Source excerpt

Should we be generating Model Context Protocol (MCP) servers directly from existing API specs? MCP is designed to let AI agents like those in Claude, Cursor, and Windsurf interact with tools and APIs. So, can we just treat our existing REST APIs as the interface for LLMs and enti...

## What's New in GraphOS: Apollo Winter '25 Release - Apollo Connectors, Native Query Planner, Improved Tools, and More!

DevFeed: [What's New in GraphOS: Apollo Winter '25 Release - Apollo Connectors, Native Query Planner, Improved Tools, and More!](<https://devfeed.tech/articles/what-s-new-in-graphos-apollo-winter-25-release-apollo-connectors-native-query-planner-improved-tools-and-more-23589.md>)

Original publisher: [Read original article](<https://www.apollographql.com/blog/whats-new-in-graphos-apollo-winter-25-release-apollo-connectors-native-query-planner-improved-tools-and-more>)

Author: Rob Brazier

Published: 2025-02-19T18:26:47Z

Content type: release

Language: en

Sources: [Apollo Blog](<https://devfeed.tech/sources/apollo-blog.md>)

Topics: [GraphOS](<https://devfeed.tech/topics/graphos.md>), [Apollo Connectors](<https://devfeed.tech/topics/apollo-connectors.md>), [GraphQL](<https://devfeed.tech/topics/graphql.md>), [REST API](<https://devfeed.tech/topics/rest-api.md>), [Visual Studio](<https://devfeed.tech/topics/visual-studio.md>)

Tags: [announcement](<https://devfeed.tech/tags/announcement.md>), [apollo-connectors](<https://devfeed.tech/tags/apollo-connectors.md>), [graphos](<https://devfeed.tech/tags/graphos.md>), [graphql](<https://devfeed.tech/tags/graphql.md>), [launch](<https://devfeed.tech/tags/launch.md>), [platform](<https://devfeed.tech/tags/platform.md>), [release](<https://devfeed.tech/tags/release.md>), [rest-apis](<https://devfeed.tech/tags/rest-apis.md>), [router-2-0](<https://devfeed.tech/tags/router-2-0.md>), [visual-studio](<https://devfeed.tech/tags/visual-studio.md>)

### AI overview

Apollo's 2025 Winter Launch introduced general availability for Apollo Connectors for REST APIs and Router 2.0 with a native query planner. The release also included Visual Studio Extension enhancements, client library improvements, and a new free pricing plan.

### Source excerpt

This week, the Apollo team 🚀SHIPPED 🚀 Our 2025 Winter Launch took place today, Wednesday, February 19, and was attended by hundreds of developers from across the GraphQL community. Our entire team had such a blast spending time with all of you and taking a deeper look at some of the powerful and exciting capabilities we've added to our GraphOS Platform. We're really proud of the work that went into this release, and it's always such a privilege to share that with all of you.

## REST API Orchestration With GraphQL

DevFeed: [REST API Orchestration With GraphQL](<https://devfeed.tech/articles/rest-api-orchestration-with-graphql-23153.md>)

Original publisher: [Read original article](<https://www.apollographql.com/blog/api-orchestration-with-graphql>)

Author: Matt DeBergalis

Published: 2025-02-19T08:45:00Z

Content type: release

Language: en

Sources: [Apollo Blog](<https://devfeed.tech/sources/apollo-blog.md>)

Topics: [API](<https://devfeed.tech/topics/api.md>), [Orchestration](<https://devfeed.tech/topics/orchestration.md>), [GraphQL](<https://devfeed.tech/topics/graphql.md>), [REST API](<https://devfeed.tech/topics/rest-api.md>), [SDKs](<https://devfeed.tech/topics/sdks.md>), [Microservice](<https://devfeed.tech/topics/microservice.md>)

Tags: [announcement](<https://devfeed.tech/tags/announcement.md>), [api](<https://devfeed.tech/tags/api.md>), [apollo-connectors](<https://devfeed.tech/tags/apollo-connectors.md>), [authorization](<https://devfeed.tech/tags/authorization.md>), [backends](<https://devfeed.tech/tags/backends.md>), [declarative](<https://devfeed.tech/tags/declarative.md>), [error-handling](<https://devfeed.tech/tags/error-handling.md>), [graph](<https://devfeed.tech/tags/graph.md>), [graphql](<https://devfeed.tech/tags/graphql.md>), [graphql-federation](<https://devfeed.tech/tags/graphql-federation.md>), [orchestration](<https://devfeed.tech/tags/orchestration.md>), [performance](<https://devfeed.tech/tags/performance.md>), [rest](<https://devfeed.tech/tags/rest.md>), [rest-apis](<https://devfeed.tech/tags/rest-apis.md>), [router](<https://devfeed.tech/tags/router.md>), [sdks](<https://devfeed.tech/tags/sdks.md>), [teams](<https://devfeed.tech/tags/teams.md>)

### AI overview

Apollo announces Apollo Connectors, a declarative, graph-based technology for orchestrating REST API calls. The article explains how API calls can be chained, parallelized, transformed, and handled for errors, timeouts, authentication, and authorization.

### Source excerpt

Today we are releasing Apollo Connectors, a major update that brings our declarative, graph-based orchestration technology to teams using REST APIs. Modern applications integrate dozens or even hundreds of different APIs. The task is significant. These APIs must be called in a precise manner and sequence. API calls need to be chained together, feeding the output of one into the next. In some cases, it's desirable to parallelize them for better performance.

## JSON - The Fine Print: Part 2 - Emitting JSON

DevFeed: [JSON - The Fine Print: Part 2 - Emitting JSON](<https://devfeed.tech/articles/json-the-fine-print-part-2-emitting-json-22267.md>)

Original publisher: [Read original article](<https://www.ardanlabs.com/blog/2024/10/json-the-fine-print-part-2.html>)

Published: 2025-02-04T00:00:00Z

Content type: tutorial

Language: en

Sources: [William Kennedy](<https://devfeed.tech/sources/william-kennedy.md>)

Topics: [JSON](<https://devfeed.tech/topics/json.md>), [API](<https://devfeed.tech/topics/api.md>), [Code](<https://devfeed.tech/topics/code.md>), [Structured-data](<https://devfeed.tech/topics/structured-data.md>)

Tags: [api](<https://devfeed.tech/tags/api.md>), [api-layers](<https://devfeed.tech/tags/api-layers.md>), [code](<https://devfeed.tech/tags/code.md>), [common-serialization-errors](<https://devfeed.tech/tags/common-serialization-errors.md>), [data](<https://devfeed.tech/tags/data.md>), [data-serialization](<https://devfeed.tech/tags/data-serialization.md>), [data-structure-separation](<https://devfeed.tech/tags/data-structure-separation.md>), [data-transmission](<https://devfeed.tech/tags/data-transmission.md>), [data-validation](<https://devfeed.tech/tags/data-validation.md>), [encoding](<https://devfeed.tech/tags/encoding.md>), [encoding-json](<https://devfeed.tech/tags/encoding-json.md>), [function](<https://devfeed.tech/tags/function.md>), [go-json-types](<https://devfeed.tech/tags/go-json-types.md>), [go-language-serialization](<https://devfeed.tech/tags/go-language-serialization.md>), [go-language-validation](<https://devfeed.tech/tags/go-language-validation.md>), [go-type-mapping](<https://devfeed.tech/tags/go-type-mapping.md>), [http](<https://devfeed.tech/tags/http.md>), [io](<https://devfeed.tech/tags/io.md>), [io-writer](<https://devfeed.tech/tags/io-writer.md>), [json](<https://devfeed.tech/tags/json.md>), [json-best-practices](<https://devfeed.tech/tags/json-best-practices.md>), [json-go-mapping](<https://devfeed.tech/tags/json-go-mapping.md>), [json-marshaling](<https://devfeed.tech/tags/json-marshaling.md>), [json-unmarshaling](<https://devfeed.tech/tags/json-unmarshaling.md>), [json-validation](<https://devfeed.tech/tags/json-validation.md>), [map](<https://devfeed.tech/tags/map.md>), [passing-serialized-data](<https://devfeed.tech/tags/passing-serialized-data.md>), [properties](<https://devfeed.tech/tags/properties.md>), [rest-apis](<https://devfeed.tech/tags/rest-apis.md>), [schema](<https://devfeed.tech/tags/schema.md>), [schema-less-data-format](<https://devfeed.tech/tags/schema-less-data-format.md>), [serialization](<https://devfeed.tech/tags/serialization.md>), [serialization-mistakes](<https://devfeed.tech/tags/serialization-mistakes.md>), [serialization-protocols](<https://devfeed.tech/tags/serialization-protocols.md>), [standard](<https://devfeed.tech/tags/standard.md>), [structure](<https://devfeed.tech/tags/structure.md>), [writing](<https://devfeed.tech/tags/writing.md>)

### AI overview

This tutorial explains how to emit JSON in Go using the encoding/json package. It compares json.Marshal, which returns bytes, with json.Encoder, which writes to an io.Writer, and discusses error handling in HTTP handlers. It also demonstrates marshaling maps and structs and using field tags to control JSON property names.

### Source excerpt

Introduction In part 1 we took a high-level view on serialization and JSON. In this part, we'll roll our sleeves and start working with JSON, focused on emitting JSON. You might think this is a basic topic, but there is much more to it than just calling json.Marshal. json.Marshal vs json.Encoder The encoding/json package has two main APIs: Marshal and NewEncoder. The Marshal function returns a []byte while the NewEncoder function will write to an io.Writer. The question is: When should you use one API over the other?

## Effortless Data Fetching: Introducing Apollo Connectors for REST APIs

DevFeed: [Effortless Data Fetching: Introducing Apollo Connectors for REST APIs](<https://devfeed.tech/articles/effortless-data-fetching-introducing-apollo-connectors-for-rest-apis-23280.md>)

Original publisher: [Read original article](<https://www.apollographql.com/blog/effortless-data-fetching-introducing-apollo-connectors-for-rest-apis>)

Author: Robert Walters

Published: 2024-12-05T14:00:17Z

Content type: tutorial

Language: en

Sources: [Apollo Blog](<https://devfeed.tech/sources/apollo-blog.md>)

Topics: [Apollo Connectors](<https://devfeed.tech/topics/apollo-connectors.md>), [GraphQL](<https://devfeed.tech/topics/graphql.md>), [REST API](<https://devfeed.tech/topics/rest-api.md>), [React](<https://devfeed.tech/topics/react.md>)

Tags: [announcement](<https://devfeed.tech/tags/announcement.md>), [apollo-connectors](<https://devfeed.tech/tags/apollo-connectors.md>), [graphql](<https://devfeed.tech/tags/graphql.md>), [net-conf](<https://devfeed.tech/tags/net-conf.md>), [react](<https://devfeed.tech/tags/react.md>), [rest-apis](<https://devfeed.tech/tags/rest-apis.md>), [tutorial](<https://devfeed.tech/tags/tutorial.md>)

### AI overview

This tutorial demonstrates how Apollo Connectors can fetch data from REST APIs without custom GraphQL resolvers. It walks through a React currency-converter application using the Apollo GraphQL client, CurrencyAPI, Apollo Studio, and Rover CLI.

### Source excerpt

Writing resolvers for REST APIs has been a rite of passage for developers working with GraphQL, but what if there were an easier way? Meet Apollo Connectors. As shown in Figure 1, Apollo Connectors mitigate the need to write code that connects to and returns data from REST APIs, reducing code surface area and time so you can focus on the business problem you're trying to solve.

## JSON - The Fine Print: Part 1

DevFeed: [JSON - The Fine Print: Part 1](<https://devfeed.tech/articles/json-the-fine-print-part-1-22266.md>)

Original publisher: [Read original article](<https://www.ardanlabs.com/blog/2024/10/json-the-fine-print-part-1.html>)

Published: 2024-10-23T00:00:00Z

Content type: tutorial

Language: en

Sources: [William Kennedy](<https://devfeed.tech/sources/william-kennedy.md>)

Topics: [JSON](<https://devfeed.tech/topics/json.md>), [API](<https://devfeed.tech/topics/api.md>)

Tags: [api-layers](<https://devfeed.tech/tags/api-layers.md>), [apis](<https://devfeed.tech/tags/apis.md>), [common-serialization-errors](<https://devfeed.tech/tags/common-serialization-errors.md>), [data-serialization](<https://devfeed.tech/tags/data-serialization.md>), [data-structure-separation](<https://devfeed.tech/tags/data-structure-separation.md>), [data-transmission](<https://devfeed.tech/tags/data-transmission.md>), [data-validation](<https://devfeed.tech/tags/data-validation.md>), [database](<https://devfeed.tech/tags/database.md>), [elasticsearch](<https://devfeed.tech/tags/elasticsearch.md>), [encoding-json](<https://devfeed.tech/tags/encoding-json.md>), [go-json-types](<https://devfeed.tech/tags/go-json-types.md>), [go-language-serialization](<https://devfeed.tech/tags/go-language-serialization.md>), [go-language-validation](<https://devfeed.tech/tags/go-language-validation.md>), [go-type-mapping](<https://devfeed.tech/tags/go-type-mapping.md>), [json](<https://devfeed.tech/tags/json.md>), [json-best-practices](<https://devfeed.tech/tags/json-best-practices.md>), [json-go-mapping](<https://devfeed.tech/tags/json-go-mapping.md>), [json-marshaling](<https://devfeed.tech/tags/json-marshaling.md>), [json-unmarshaling](<https://devfeed.tech/tags/json-unmarshaling.md>), [json-validation](<https://devfeed.tech/tags/json-validation.md>), [passing-serialized-data](<https://devfeed.tech/tags/passing-serialized-data.md>), [rest-apis](<https://devfeed.tech/tags/rest-apis.md>), [schema-less-data-format](<https://devfeed.tech/tags/schema-less-data-format.md>), [sensitive-data](<https://devfeed.tech/tags/sensitive-data.md>), [serialization](<https://devfeed.tech/tags/serialization.md>), [serialization-mistakes](<https://devfeed.tech/tags/serialization-mistakes.md>), [serialization-protocols](<https://devfeed.tech/tags/serialization-protocols.md>)

### AI overview

This article explains JSON and serialization fundamentals, then examines common mistakes. It recommends serializing data at program boundaries and using separate data structures for API, business, and storage layers to avoid inefficiency, coupling, and accidental exposure of sensitive data.

### Source excerpt

Introduction Everybody knows JSON, it's a simple serialization format and the default format for REST APIs. Like many other topics, there are fine points you should know in order to work with JSON more effectively and avoid common mistakes. In this article we'll explore some big picture aspects and some low level details of using JSON. Serialization Before diving into JSON, I'd like to take a look at serialization in general and discuss common mistakes I've seen my customers make.

## Apollo Connectors Integrate GraphQL APIs with REST APIs

DevFeed: [Apollo Connectors Integrate GraphQL APIs with REST APIs](<https://devfeed.tech/articles/apollo-connectors-blazing-fast-integration-with-rest-apis-23177.md>)

Original publisher: [Read original article](<https://www.apollographql.com/blog/apollo-connectors-for-rest-apis>)

Author: Dylan Anthony

Published: 2024-10-09T08:31:00Z

Content type: article

Language: en

Sources: [Apollo Blog](<https://devfeed.tech/sources/apollo-blog.md>)

Topics: [GraphQL](<https://devfeed.tech/topics/graphql.md>), [REST API](<https://devfeed.tech/topics/rest-api.md>), [Programming](<https://devfeed.tech/topics/programming.md>)

Tags: [announcement](<https://devfeed.tech/tags/announcement.md>), [apollo-connectors](<https://devfeed.tech/tags/apollo-connectors.md>), [declarative](<https://devfeed.tech/tags/declarative.md>), [graphql](<https://devfeed.tech/tags/graphql.md>), [observability](<https://devfeed.tech/tags/observability.md>), [opentelemetry](<https://devfeed.tech/tags/opentelemetry.md>), [rest-apis](<https://devfeed.tech/tags/rest-apis.md>), [schema](<https://devfeed.tech/tags/schema.md>)

### AI overview

Apollo Connectors let developers connect GraphQL fields to HTTP APIs using declarative syntax in schema files. GraphOS Router can communicate directly with the APIs without an intermediate subgraph service.

### Source excerpt

Apollo Connectors make it easier than ever to create a GraphQL API leveraging non-GraphQL services. Developers can use a declarative syntax, right in their schema files, to connect GraphQL fields to HTTP APIs. GraphOS Router uses that information to talk directly to the API, no subgraph needed.

## Parsing: the merit of strictly typed JSON

DevFeed: [Parsing: the merit of strictly typed JSON](<https://devfeed.tech/articles/parsing-the-merit-of-strictly-typed-json-19972.md>)

Original publisher: [Read original article](<https://www.theguardian.com/info/article/2024/jul/26/parsing-the-merit-of-strictly-typed-json>)

Author: Max Duval

Published: 2024-07-26T16:05:58Z

Content type: tutorial

Language: en

Sources: [Guardian](<https://devfeed.tech/sources/guardian.md>)

Topics: [JSON](<https://devfeed.tech/topics/json.md>), [TypeScript](<https://devfeed.tech/topics/typescript.md>), [JavaScript](<https://devfeed.tech/topics/javascript.md>), [Parsing](<https://devfeed.tech/topics/parsing.md>), [Programming](<https://devfeed.tech/topics/programming.md>)

Tags: [javascript](<https://devfeed.tech/tags/javascript.md>), [json](<https://devfeed.tech/tags/json.md>), [parsing](<https://devfeed.tech/tags/parsing.md>), [rest-apis](<https://devfeed.tech/tags/rest-apis.md>), [runtime-errors](<https://devfeed.tech/tags/runtime-errors.md>), [typescript](<https://devfeed.tech/tags/typescript.md>)

### AI overview

This tutorial explains how loosely typed JSON.parse results can undermine TypeScript's static analysis. It recommends precisely describing and validating the shape of changing JSON responses so API or data-shape errors can be detected and handled more helpfully before they cause runtime failures.

### Source excerpt

Dealing with content that keeps changing can lead to bugs on users' devices that are hard to reproduce. By precisely describing the shape of the content using types and ensuring it matches, exceptions can be avoided and users shown helpful messages when errors occur. This post will illustrate how this can be achieved with standard web technologies. The programming language of the web is JavaScript (JS), but its lack of static typing is the top pain point raised from the 2023 State of JS survey. We rely on TypeScript (TS) to get a strong structural type analysis of our code, as mentioned in our article on standardisation. Static typing helps prevent runtime errors on our users' machines. However, to ensure that no TypeError ever appears, we need to avoid the loose 'any' type, which is an escape hatch designed to opt-out of TS' static analysis. JavaScript Object Notation (JSON) is widely used as a data exchange format for REST APIs. Its syntax is compatible with JS, with only a subset of the language's primitives: objects, arrays, strings, numbers and nulls. Simple objects can be turned into a string with JSON.stringify and turned back into an object with JSON.parse, making it an adequate choice for many uses. We use it for powering our comments, new live blog updates, football match scores, weather, most read and other features of the website and Apps. Continue reading...

## Delivering personalized travel experiences with GraphQL

DevFeed: [Delivering personalized travel experiences with GraphQL](<https://devfeed.tech/articles/delivering-personalized-travel-experiences-with-graphql-23266.md>)

Original publisher: [Read original article](<https://www.apollographql.com/blog/delivering-personalized-travel-experiences-with-graphql>)

Author: Tushar Bhushan

Published: 2023-07-14T12:47:41Z

Content type: article

Language: en

Sources: [Apollo Blog](<https://devfeed.tech/sources/apollo-blog.md>)

Topics: [GraphQL](<https://devfeed.tech/topics/graphql.md>), [GraphOS](<https://devfeed.tech/topics/graphos.md>), [Microservice](<https://devfeed.tech/topics/microservice.md>), [data](<https://devfeed.tech/topics/data.md>)

Tags: [apis](<https://devfeed.tech/tags/apis.md>), [apollo-federation](<https://devfeed.tech/tags/apollo-federation.md>), [architectures](<https://devfeed.tech/tags/architectures.md>), [dependencies](<https://devfeed.tech/tags/dependencies.md>), [fragmentation](<https://devfeed.tech/tags/fragmentation.md>), [graphos](<https://devfeed.tech/tags/graphos.md>), [graphql](<https://devfeed.tech/tags/graphql.md>), [recommendations](<https://devfeed.tech/tags/recommendations.md>), [rest-apis](<https://devfeed.tech/tags/rest-apis.md>), [services](<https://devfeed.tech/tags/services.md>), [state](<https://devfeed.tech/tags/state.md>)

### AI overview

This article explains how Apollo GraphOS and Apollo Federation can provide a unified view of a traveler's data while preserving microservice architectures. It contrasts this federated approach with REST-based aggregation, where clients make multiple requests and manage data dependencies and business logic.

### Source excerpt

This post is a part of our "How to build connected travel apps with Apollo GraphOS" series. Also in this series: - Ship products faster with SDUI - Mitigate scraping and bot attacks with GraphOS - Seamlessly integrate with partners to enhance the travel experience In the ever-evolving travel industry, companies are recognizing the value of delivering personalized experiences to their customers.

## The Democratisation of Artificial Intelligence with ChatGPT

DevFeed: [The Democratisation of Artificial Intelligence with ChatGPT](<https://devfeed.tech/articles/the-democratisation-of-artificial-intelligence-with-chatgpt-35073.md>)

Original publisher: [Read original article](<https://novoda.com/blog/2023/04/13/the-democratisation-of-artificial-intelligence-with-chatgpt/>)

Author: Juanky Soriano

Published: 2023-04-13T16:26:47Z

Content type: opinion

Language: en

Sources: [Novoda](<https://devfeed.tech/sources/novoda.md>)

Topics: [Artificial Intelligence](<https://devfeed.tech/topics/ai.md>), [ChatGPT](<https://devfeed.tech/topics/chatgpt.md>), [AI Development](<https://devfeed.tech/topics/ai-development.md>), [MLOps](<https://devfeed.tech/topics/mlops.md>), [DevOps](<https://devfeed.tech/topics/devops.md>)

Tags: [ai](<https://devfeed.tech/tags/ai.md>), [automate](<https://devfeed.tech/tags/automate.md>), [chatgpt](<https://devfeed.tech/tags/chatgpt.md>), [developers](<https://devfeed.tech/tags/developers.md>), [devops](<https://devfeed.tech/tags/devops.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [mlops](<https://devfeed.tech/tags/mlops.md>), [rest-apis](<https://devfeed.tech/tags/rest-apis.md>)

### AI overview

This opinion article argues that ChatGPT and other GPT models have made artificial intelligence more accessible to businesses and developers. It describes how reduced complexity and readily available training resources and development tools can help organizations create AI solutions, optimize processes, and pursue business value. It also discusses implications for MLOps and DevOps.

### Source excerpt

AI is more accessible than it's ever been. How can businesses leverage AI solutions to unlock value that was previously out of their reach? The post The Democratisation of Artificial Intelligence with ChatGPT appeared first on Novoda.

## Generated GraphQL Schemas and Schema Design

DevFeed: [Generated GraphQL Schemas and Schema Design](<https://devfeed.tech/articles/generated-graphql-schemas-and-schema-design-23311.md>)

Original publisher: [Read original article](<https://www.apollographql.com/blog/generated-graphql-schemas-and-schema-design>)

Author: Shane Myrick

Published: 2022-09-01T09:00:00Z

Content type: article

Language: en

Sources: [Apollo Blog](<https://devfeed.tech/sources/apollo-blog.md>)

Topics: [GraphQL](<https://devfeed.tech/topics/graphql.md>), [schema design](<https://devfeed.tech/topics/schema-design.md>), [API](<https://devfeed.tech/topics/api.md>)

Tags: [api](<https://devfeed.tech/tags/api.md>), [apis](<https://devfeed.tech/tags/apis.md>), [backend](<https://devfeed.tech/tags/backend.md>), [graphql](<https://devfeed.tech/tags/graphql.md>), [rest-apis](<https://devfeed.tech/tags/rest-apis.md>), [schema](<https://devfeed.tech/tags/schema.md>), [schema-design](<https://devfeed.tech/tags/schema-design.md>), [sql](<https://devfeed.tech/tags/sql.md>), [tooling](<https://devfeed.tech/tags/tooling.md>)

### AI overview

This article explains how GraphQL schemas define the types and operations available through an API. It distinguishes generated schemas from schema-first and code-only approaches, and introduces trade-offs involved in designing schemas for client needs.

### Source excerpt

GraphQL is a type-safe language for APIs. A common misunderstanding is that GraphQL is another complete query language, like SQL, which allows you to search, filter, and select all the objects in a database. Instead, GraphQL should be thought of as a way to specify the types of data available and the specific operations users can perform over an API.

## REST APIs for every Temporal Workflow in one line of code

DevFeed: [REST APIs for every Temporal Workflow in one line of code](<https://devfeed.tech/articles/rest-apis-for-every-temporal-workflow-in-one-line-of-code-36028.md>)

Original publisher: [Read original article](<https://temporal.io/blog/temporal-rest>)

Author: Valeri Karpov

Published: 2022-02-28T07:00:00Z

Content type: tutorial

Language: en

Sources: [Temporal Blog](<https://devfeed.tech/sources/temporal-blog.md>)

Topics: [REST API](<https://devfeed.tech/topics/rest-api.md>), [Express](<https://devfeed.tech/topics/express.md>), [client](<https://devfeed.tech/topics/client.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [apis](<https://devfeed.tech/tags/apis.md>), [client](<https://devfeed.tech/tags/client.md>), [code](<https://devfeed.tech/tags/code.md>), [express](<https://devfeed.tech/tags/express.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [integration](<https://devfeed.tech/tags/integration.md>), [rest](<https://devfeed.tech/tags/rest.md>), [rest-apis](<https://devfeed.tech/tags/rest-apis.md>)

### AI overview

This tutorial shows how to create REST APIs for Temporal Workflows using the temporal-rest middleware with ExpressJS. It demonstrates endpoints for starting Workflows, sending Signals, and executing Queries, including JSON request bodies and query parameters.

### Source excerpt

Learn how to create a REST API for Temporal Workflows in just one line of code using temporal-rest and ExpressJS, simplifying your workflow integration.

## RetailMeNot GraphQL Federation

DevFeed: [RetailMeNot GraphQL Federation](<https://devfeed.tech/articles/retailmenot-graphql-federation-20365.md>)

Original publisher: [Read original article](<https://engineering.ziffmedia.com/retailmenot-graphql-federation-3bb36dac5aaa?source=rss----d6bb34696ef5---4>)

Author: Kartik Kumar Gujarati

Published: 2021-10-08T15:01:45Z

Content type: article

Language: en

Sources: [RetailMeNot](<https://devfeed.tech/sources/retailmenot.md>)

Topics: [GraphQL](<https://devfeed.tech/topics/graphql.md>), [Back end](<https://devfeed.tech/topics/backend.md>), [Graphs](<https://devfeed.tech/topics/graphs.md>), [Android](<https://devfeed.tech/topics/android.md>), [iOS](<https://devfeed.tech/topics/ios.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [browser](<https://devfeed.tech/tags/browser.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [extension](<https://devfeed.tech/tags/extension.md>), [graphql](<https://devfeed.tech/tags/graphql.md>), [graphql-federation](<https://devfeed.tech/tags/graphql-federation.md>), [ios](<https://devfeed.tech/tags/ios.md>), [mobile](<https://devfeed.tech/tags/mobile.md>), [rest-api](<https://devfeed.tech/tags/rest-api.md>), [rest-apis](<https://devfeed.tech/tags/rest-apis.md>), [retailmenot](<https://devfeed.tech/tags/retailmenot.md>), [web](<https://devfeed.tech/tags/web.md>), [ziff-davis](<https://devfeed.tech/tags/ziff-davis.md>)

### AI overview

This article describes how RetailMeNot addressed REST API versioning, over-fetching, and under-fetching by adopting GraphQL and transitioning from a GraphQL monolith toward GraphQL Federation. It covers the company's application and backend rebuild across Android, iOS, web, and browser extension experiences.

### Source excerpt

Did you ever have to maintain multiple versions of a REST API because the change you needed to make would break existing clients? Does your native app have to call multiple REST endpoints to get all the data it needs? This blog post is about how we addressed these common problems using GraphQL and our transition to GraphQL Federation at RetailMeNot. RetailMeNot, part of Ziff Media, Inc, makes everyday life more affordable for shoppers. We are a leading savings destination providing online and in-store coupons and cashback offers to our users. Today, we serve millions of monthly active users from our desktop, mobile web, native (iOS & Android) apps, and browser extension (Deal Finder™) experiences. For the last 10 years, RetailMeNot's engineering teams have built several highly performant, scalable, and efficient systems to bring savings data to our users through our experiences. And like many companies, RetailMeNot used REST APIs to serve the data. However, as the company and the systems grew, we started to experience problems like versioning, over-fetching, and under-fetching with REST APIs. For more details on the classic problems that arise from REST services and how GraphQL solves them, see this blog post. For an introduction to GraphQL, see this blog post. How it started: A Monolithic Graph In 2019, we took a step back to rethink where we are headed in terms of our tech stack and how to best serve future experiences. We decided to rewrite our native Android and iOS apps and the backend that supports them. In addition to this, we also built a brand new browser extension (Deal Finder™) and re-wrote several parts of our core website. As we started to rebuild our native apps, we wanted to solve the above problems we faced with REST APIs. GraphQL seemed like a great solution for this. Enter GraphQL. In our first iteration with GraphQL, we built a GraphQL monolith. Monolith Graph The GraphQL Monolith at RetailMeNot was a single GraphQL Server used by our Native Andro

## Monitoring REST APIs with Custom JDK Flight Recorder Events

DevFeed: [Monitoring REST APIs with Custom JDK Flight Recorder Events](<https://devfeed.tech/articles/monitoring-rest-apis-with-custom-jdk-flight-recorder-events-18864.md>)

Original publisher: [Read original article](<https://www.morling.dev/blog/rest-api-monitoring-with-custom-jdk-flight-recorder-events/>)

Published: 2020-01-29T14:30:00Z

Content type: tutorial

Language: en

Sources: [Gunnar Morling](<https://devfeed.tech/sources/gunnar-morling.md>)

Topics: [JDK Flight Recorder](<https://devfeed.tech/topics/jdk-flight-recorder.md>), [Monitoring](<https://devfeed.tech/topics/monitoring.md>), [REST API](<https://devfeed.tech/topics/rest-api.md>), [Java](<https://devfeed.tech/topics/java.md>), [Grafana](<https://devfeed.tech/topics/grafana.md>), [Prometheus](<https://devfeed.tech/topics/prometheus.md>)

Tags: [grafana](<https://devfeed.tech/tags/grafana.md>), [java](<https://devfeed.tech/tags/java.md>), [jdk-flight-recorder](<https://devfeed.tech/tags/jdk-flight-recorder.md>), [jvm](<https://devfeed.tech/tags/jvm.md>), [monitoring](<https://devfeed.tech/tags/monitoring.md>), [prometheus](<https://devfeed.tech/tags/prometheus.md>), [rest](<https://devfeed.tech/tags/rest.md>), [rest-apis](<https://devfeed.tech/tags/rest-apis.md>)

### AI overview

This tutorial explains how custom JDK Flight Recorder events can monitor a REST API, including tracking request counts and identifying long-running requests. It also describes using the JFR Event Streaming API to export live events for monitoring and alerting with Prometheus and Grafana.

### Source excerpt

Table of Contents Custom Flight Recorder Events Creating JFR Recordings Event Settings JFR Event Streaming MicroProfile Metrics Summary and Related Work The JDK Flight Recorder (JFR) is an invaluable tool for gaining deep insights into the performance characteristics of Java applications. Open-sourced in JDK 11, JFR provides a low-overhead framework for collecting events from Java applications, the JVM and the operating system. In this blog post we're going to explore how custom, application-specific JFR events can be used to monitor a REST API, allowing to track request counts, identify long-running requests and more. We'll also discuss how the JFR Event Streaming API new in Java 14 can be used to export live events, making them available for monitoring and alerting via tools such as Prometheus and Grafana.

## Easy and performant GraphQL over REST

DevFeed: [Easy and performant GraphQL over REST](<https://devfeed.tech/articles/easy-and-performant-graphql-over-rest-23278.md>)

Original publisher: [Read original article](<https://www.apollographql.com/blog/easy-and-performant-graphql-over-rest-e02796993b2b>)

Author: Martijn Walraven

Published: 2018-06-19T22:44:00Z

Content type: article

Language: en

Sources: [Apollo Blog](<https://devfeed.tech/sources/apollo-blog.md>)

Topics: [apollo-server](<https://devfeed.tech/topics/apollo-server.md>), [GraphQL](<https://devfeed.tech/topics/graphql.md>), [Caching](<https://devfeed.tech/topics/caching.md>), [JavaScript](<https://devfeed.tech/topics/javascript.md>), [HTTP](<https://devfeed.tech/topics/http.md>), [Authorization](<https://devfeed.tech/topics/authorization.md>), [Error Handling](<https://devfeed.tech/topics/error-handling.md>), [JSON](<https://devfeed.tech/topics/json.md>)

Tags: [apis](<https://devfeed.tech/tags/apis.md>), [apollo](<https://devfeed.tech/tags/apollo.md>), [authorization](<https://devfeed.tech/tags/authorization.md>), [backend](<https://devfeed.tech/tags/backend.md>), [batching](<https://devfeed.tech/tags/batching.md>), [caching](<https://devfeed.tech/tags/caching.md>), [error-handling](<https://devfeed.tech/tags/error-handling.md>), [graphql](<https://devfeed.tech/tags/graphql.md>), [http](<https://devfeed.tech/tags/http.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [json](<https://devfeed.tech/tags/json.md>), [rest](<https://devfeed.tech/tags/rest.md>), [rest-apis](<https://devfeed.tech/tags/rest-apis.md>)

### AI overview

This article introduces data sources in Apollo Server 2.0, describing them as classes for fetching and caching data from REST endpoints. It explains built-in support for caching, deduplication, error handling, HTTP requests, query parameters, JSON parsing, authorization, and GraphQL execution context.

### Source excerpt

Last Friday, we published a first release candidate of Apollo Server 2.0, a 100% open source JavaScript GraphQL server that bakes in the best practices we've learned working with hundreds of teams running GraphQL in production. This post introduces data sources, one of its new features. In our experience, the right way to deploy GraphQL is as a layer between your apps and your existing APIs and services.

## Caching GraphQL results in your CDN

DevFeed: [Caching GraphQL results in your CDN](<https://devfeed.tech/articles/caching-graphql-results-in-your-cdn-23249.md>)

Original publisher: [Read original article](<https://www.apollographql.com/blog/caching-graphql-results-in-your-cdn>)

Author: Sashko Stubailo

Published: 2018-04-06T21:05:00Z

Content type: tutorial

Language: en

Sources: [Apollo Blog](<https://devfeed.tech/sources/apollo-blog.md>)

Topics: [GraphQL](<https://devfeed.tech/topics/graphql.md>), [Caching](<https://devfeed.tech/topics/caching.md>), [HTTP](<https://devfeed.tech/topics/http.md>), [API](<https://devfeed.tech/topics/api.md>)

Tags: [akamai](<https://devfeed.tech/tags/akamai.md>), [announcement](<https://devfeed.tech/tags/announcement.md>), [api](<https://devfeed.tech/tags/api.md>), [caching](<https://devfeed.tech/tags/caching.md>), [cdn](<https://devfeed.tech/tags/cdn.md>), [cloudflare](<https://devfeed.tech/tags/cloudflare.md>), [graphql](<https://devfeed.tech/tags/graphql.md>), [http](<https://devfeed.tech/tags/http.md>), [optimization](<https://devfeed.tech/tags/optimization.md>), [rest-apis](<https://devfeed.tech/tags/rest-apis.md>)

### AI overview

This tutorial explains how to cache GraphQL API results in a CDN. It describes using edge caching for infrequently changing public data, improving load times and reducing server load, while noting that caching is less useful for frequently changing or private data.

### Source excerpt

At first glance, it might seem like GraphQL is so different from REST and other HTTP API technologies that you have to rethink all of your infrastructure from scratch. But it turns out that it's not hard to add GraphQL to your existing setup and start getting the benefits you want right away, without having to rebuild anything you already have. - You can keep your existing backends and business logic, since you can put GraphQL over REST APIs.

[Next page](<https://devfeed.tech/tags/rest-apis.md?cursor=WyIyMDE4LTA0LTA2VDIxOjA1OjAwKzAwOjAwIiwgImFkODQyOTUyLTUwY2UtNDA4ZC04NWFkLWFlZjUyODhkZmJlOSJd>)