Files
Taryn King 65c6929414 chore(docs): update docs to use postgres over postgresql language (#44881)
## I have read the
[CONTRIBUTING.md](https://github.com/supabase/supabase/blob/master/CONTRIBUTING.md)
file.

YES

## What kind of change does this PR introduce?

Updates verbiage throughout docs to use postgres over postgresql.


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **Documentation**
* Updated terminology throughout documentation, guides, and resources
for consistent product naming across all user-facing materials,
including page titles, descriptions, and reference documentation.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-04-15 09:49:45 +00:00

116 lines
2.9 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
id: 'http'
title: 'http: RESTful Client'
description: 'An HTTP Client for Postgres Functions.'
video: 'https://www.youtube.com/v/rARgrELRCwY'
---
The `http` extension allows you to call RESTful endpoints within Postgres.
## Quick demo
<div className="video-container">
<iframe
src="https://www.youtube-nocookie.com/embed/rARgrELRCwY"
frameBorder="1"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
allowFullScreen
></iframe>
</div>
## Overview
Let's cover some basic concepts:
- REST: stands for REpresentational State Transfer. It's a way to request data from external services.
- RESTful APIs are servers which accept HTTP "calls". The calls are typically:
- `GET` Read only access to a resource.
- `POST` Creates a new resource.
- `DELETE` Removes a resource.
- `PUT` Updates an existing resource or creates a new resource.
You can use the `http` extension to make these network requests from Postgres.
## Usage
### Enable the extension
<Tabs
scrollable
size="small"
type="underlined"
defaultActiveId="dashboard"
queryGroup="database-method"
>
<TabPanel id="dashboard" label="Dashboard">
1. Go to the [Database](/dashboard/project/_/database/tables) page in the Dashboard.
2. Click on **Extensions** in the sidebar.
3. Search for `http` and enable the extension.
</TabPanel>
<TabPanel id="sql" label="SQL">
```sql
-- Example: enable the "http" extension
create extension http with schema extensions;
-- Example: disable the "http" extension
drop extension if exists http;
```
Even though the SQL code is `create extension`, this is the equivalent of "enabling the extension".
To disable an extension, call `drop extension`.
It's good practice to create the extension within a separate schema (like `extensions`) to keep the `public` schema clean.
</TabPanel>
</Tabs>
### Available functions
While the main usage is `http('http_request')`, there are 5 wrapper functions for specific functionality:
- `http_get()`
- `http_post()`
- `http_put()`
- `http_delete()`
- `http_head()`
### Returned values
A successful call to a web URL from the `http` extension returns a record with the following fields:
- `status`: integer
- `content_type`: character varying
- `headers`: http_header[]
- `content`: character varying. Typically you would want to cast this to `jsonb` using the format `content::jsonb`
## Examples
### Simple `GET` example
```sql
select
"status", "content"::jsonb
from
extensions.http_get('https://jsonplaceholder.typicode.com/todos/1');
```
### Simple `POST` example
```sql
select
"status", "content"::jsonb
from
extensions.http_post(
'https://jsonplaceholder.typicode.com/posts',
'{ "title": "foo", "body": "bar", "userId": 1 }',
'application/json'
);
```
## Resources
- Official [`http` GitHub Repository](https://github.com/pramsey/pgsql-http)