API v2 search and message list documentation for #36

This commit is contained in:
Ian Kent 2015-02-24 22:44:34 +00:00
parent 693d6590f2
commit da1b7ec64a
3 changed files with 453 additions and 0 deletions

8
docs/APIv2.md Normal file
View file

@ -0,0 +1,8 @@
MailHog API v2
==============
The v2 API is hopefully less of a mess than v1.
The specification is written in [Swagger 2.0](http://swagger.io/).
See the YAML and JSON specifications in the [APIv2](./APIv2) directory.

259
docs/APIv2/swagger-2.0.json Normal file
View file

@ -0,0 +1,259 @@
{
"swagger": "2.0",
"info": {
"version": "2.0.0",
"title": "MailHog API"
},
"paths": {
"/api/v2/messages": {
"get": {
"description": "Retrieve a list of messages\n",
"parameters": [
{
"name": "start",
"in": "query",
"description": "Start index",
"required": false,
"type": "number",
"format": "int64",
"default": 0
},
{
"name": "limit",
"in": "query",
"description": "Number of messages",
"required": false,
"type": "number",
"format": "int64",
"default": 50
}
],
"responses": {
"200": {
"description": "Successful response",
"schema": {
"title": "Messages",
"type": "object",
"properties": {
"total": {
"type": "number",
"format": "int64",
"description": "Total number of stored messages"
},
"start": {
"type": "number",
"format": "int64",
"description": "Start index of first returned message"
},
"count": {
"type": "number",
"format": "int64",
"description": "Number of returned messages"
},
"messages": {
"type": "array",
"items": {
"title": "Message",
"type": "object",
"properties": {
"id": {
"type": "string"
},
"from": {
"title": "Path",
"type": "object",
"properties": {
"relays": {
"type": "array",
"items": {
"type": "string"
}
},
"mailbox": {
"type": "string"
},
"domain": {
"type": "string"
},
"params": {
"type": "string"
}
}
},
"to": {
"type": "array",
"items": {
"title": "Path",
"type": "object",
"properties": {
"relays": {
"type": "array",
"items": {
"type": "string"
}
},
"mailbox": {
"type": "string"
},
"domain": {
"type": "string"
},
"params": {
"type": "string"
}
}
}
},
"headers": {
"type": "object"
},
"size": {
"type": "number",
"format": "int64"
},
"created": {
"type": "string",
"format": "date-time"
}
}
}
}
}
}
}
}
}
},
"/api/v2/search": {
"get": {
"description": "Search messages\n",
"parameters": [
{
"name": "kind",
"in": "query",
"description": "Kind of search",
"required": true,
"type": "string",
"enum": [
"from",
"to",
"containing"
]
},
{
"name": "start",
"in": "query",
"description": "Start index",
"required": false,
"type": "number",
"format": "int64",
"default": 0
},
{
"name": "limit",
"in": "query",
"description": "Number of messages",
"required": false,
"type": "number",
"format": "int64",
"default": 50
}
],
"responses": {
"200": {
"description": "Successful response",
"schema": {
"title": "Messages",
"type": "object",
"properties": {
"total": {
"type": "number",
"format": "int64",
"description": "Total number of stored messages"
},
"start": {
"type": "number",
"format": "int64",
"description": "Start index of first returned message"
},
"count": {
"type": "number",
"format": "int64",
"description": "Number of returned messages"
},
"messages": {
"type": "array",
"items": {
"title": "Message",
"type": "object",
"properties": {
"id": {
"type": "string"
},
"from": {
"title": "Path",
"type": "object",
"properties": {
"relays": {
"type": "array",
"items": {
"type": "string"
}
},
"mailbox": {
"type": "string"
},
"domain": {
"type": "string"
},
"params": {
"type": "string"
}
}
},
"to": {
"type": "array",
"items": {
"title": "Path",
"type": "object",
"properties": {
"relays": {
"type": "array",
"items": {
"type": "string"
}
},
"mailbox": {
"type": "string"
},
"domain": {
"type": "string"
},
"params": {
"type": "string"
}
}
}
},
"headers": {
"type": "object"
},
"size": {
"type": "number",
"format": "int64"
},
"created": {
"type": "string",
"format": "date-time"
}
}
}
}
}
}
}
}
}
}
}
}

186
docs/APIv2/swagger-2.0.yaml Normal file
View file

@ -0,0 +1,186 @@
swagger: '2.0'
info:
version: "2.0.0"
title: MailHog API
paths:
/api/v2/messages:
get:
description: |
Retrieve a list of messages
parameters:
-
name: start
in: query
description: Start index
required: false
type: number
format: int64
default: 0
-
name: limit
in: query
description: Number of messages
required: false
type: number
format: int64
default: 50
responses:
200:
description: Successful response
schema:
title: Messages
type: object
properties:
total:
type: number
format: int64
description: Total number of stored messages
start:
type: number
format: int64
description: Start index of first returned message
count:
type: number
format: int64
description: Number of returned messages
messages:
type: array
items:
title: Message
type: object
properties:
id:
type: string
from:
title: Path
type: object
properties:
relays:
type: array
items:
type: string
mailbox:
type: string
domain:
type: string
params:
type: string
to:
type: array
items:
title: Path
type: object
properties:
relays:
type: array
items:
type: string
mailbox:
type: string
domain:
type: string
params:
type: string
headers:
type: object
size:
type: number
format: int64
created:
type: string
format: date-time
/api/v2/search:
get:
description: |
Search messages
parameters:
-
name: kind
in: query
description: Kind of search
required: true
type: string
enum: [ from, to, containing ]
-
name: start
in: query
description: Start index
required: false
type: number
format: int64
default: 0
-
name: limit
in: query
description: Number of messages
required: false
type: number
format: int64
default: 50
responses:
200:
description: Successful response
schema:
title: Messages
type: object
properties:
total:
type: number
format: int64
description: Total number of stored messages
start:
type: number
format: int64
description: Start index of first returned message
count:
type: number
format: int64
description: Number of returned messages
messages:
type: array
items:
title: Message
type: object
properties:
id:
type: string
from:
title: Path
type: object
properties:
relays:
type: array
items:
type: string
mailbox:
type: string
domain:
type: string
params:
type: string
to:
type: array
items:
title: Path
type: object
properties:
relays:
type: array
items:
type: string
mailbox:
type: string
domain:
type: string
params:
type: string
headers:
type: object
size:
type: number
format: int64
created:
type: string
format: date-time