.do
Resources

MDX

MDX file operations

RESTful operations on MDX files with namespaces.

Pattern

GET    /:ns/:type            List MDX files
POST   /:ns/:type            Create (ID auto-generated)
GET    /:ns/:type/:id        Get MDX file
PUT    /:ns/:type/:id        Update MDX file
DELETE /:ns/:type/:id        Delete MDX file

Namespace

:ns can be:

  • Your domain: acme.com
  • Builder domain: myapp.hq.com.ai, startup.app.net.ai, project.io.mw

Example

# Get MDX file
GET https://apis.do/acme.com/businesses/acme-inc

# List MDX files
GET https://apis.do/acme.com/businesses

# Create MDX file (ID auto-generated)
POST https://apis.do/acme.com/businesses
{
  "frontmatter": {
    "title": "New Business",
    "industry": "Technology"
  },
  "body": "# New Business\n\nDescription..."
}

# Update MDX file
PUT https://apis.do/acme.com/businesses/acme-inc
{
  "frontmatter": {
    "industry": "Advanced Manufacturing"
  }
}

# Delete MDX file
DELETE https://apis.do/acme.com/businesses/acme-inc

Response

{
  "id": "acme-inc",
  "type": "businesses",
  "namespace": "acme.com",
  "frontmatter": {
    "title": "Acme Inc",
    "industry": "Manufacturing"
  },
  "body": "# Acme Inc\n\nManufacturer of...",
  "url": "https://apis.do/acme.com/businesses/acme-inc",
  "createdAt": "2024-01-15T10:00:00Z",
  "updatedAt": "2024-11-11T15:30:00Z"
}

SDK

import { $ } from 'sdk.do'

const client = $('acme.com')

// Get
const doc = await client.mdx.get('businesses', 'acme-inc')

// List
const docs = await client.mdx.list('businesses')

// Create
const newDoc = await client.mdx.create('businesses', {
  frontmatter: { title: 'New Business' },
  body: '# New Business\n\nDescription...'
})

// Update
await client.mdx.update('businesses', 'acme-inc', {
  frontmatter: { industry: 'Advanced Manufacturing' }
})

// Delete
await client.mdx.delete('businesses', 'acme-inc')

Content Types

# JSON (default)
curl -H "Accept: application/json" \
  https://apis.do/acme.com/businesses/acme-inc

# Raw MDX
curl -H "Accept: text/mdx" \
  https://apis.do/acme.com/businesses/acme-inc

# Rendered HTML
curl -H "Accept: text/html" \
  https://apis.do/acme.com/businesses/acme-inc