Skip to content

Instantly share code, notes, and snippets.

@jmlweb
Last active December 29, 2015 20:08
Show Gist options
  • Save jmlweb/ed921db02865c6a2fcb4 to your computer and use it in GitHub Desktop.
Save jmlweb/ed921db02865c6a2fcb4 to your computer and use it in GitHub Desktop.
swagger: '2.0'
info:
title: Whois API
description: Documentación para la API de la plataforma whois
version: 1.0.0
host: buscadomin.io
schemes:
- http
basePath: /v1
produces:
- application/json
paths:
/login:
post:
summary: Login
description: Identificación de usuario
parameters:
- name: email
in: formData
description: Email del usuario
required: true
type: string
- name: passwd
in: formData
description: Contraseña del usuario
required: true
type: string
format: password
tags:
- Auth
responses:
200:
description: Datos del usuario
schema:
$ref: '#/definitions/userData'
400:
description: Llamada no válida (Los datos no son correctos, etc). No devuelve mensaje de error por cuestiones relativas a la seguridad.
/signup:
post:
summary: Registro
description: Registro de usuario
parameters:
- name: name
in: formData
description: Nombre del usuario
required: true
type: string
- name: surname
in: formData
description: Apellidos del usuario
type: string
- name: email
in: formData
required: true
type: string
- name: passwd
in: formData
description: Contraseña del usuario
required: true
type: string
format: password
tags:
- Auth
responses:
200:
description: Datos del usuario
schema:
$ref: '#/definitions/userData'
400:
description: Error en la llamada
schema:
$ref: '#/definitions/error400'
409:
description: El usuario ya existe
/logout:
get:
summary: Cerrar sesión
description: Salir de la sesión de usuario
tags:
- Auth
responses:
200:
description: Datos del usuario
401:
description: El usuario no está logueado
/domains:
get:
summary: Listado de dominios
description: Dominios guardados por el usuario (datos básicos)
tags:
- Dominios
responses:
200:
description: Datos de los dominios
schema:
$ref: '#/definitions/userDomains'
401:
description: El usuario no está logueado
403:
description: El usuario está logueado pero no tiene permiso (por ejemplo un invitado al que se le ha caducado el periodo de prueba)
schema:
$ref: '#/definitions/userDomains'
post:
summary: Añadir un dominio al listado del usuario
description: Los dominios guardados mostrarán la información extra, alertas, etc
tags:
- Dominios
parameters:
- name: name
in: formData
description: Nombre del dominio
required: true
type: string
responses:
200:
description: Datos actualizados de los dominios
schema:
$ref: '#/definitions/userDomains'
401:
description: El usuario no está logueado
403:
description: El usuario está logueado pero no tiene permiso (por ejemplo un invitado al que se le ha caducado el periodo de prueba)
/search:
post:
summary: Buscar datos sobre un dominio
description: El usuario buscará en primer lugar un dominio, y a partir de ahí obtendrá los datos completos si ya lo había guardado o bien los datos básicos en caso contrario
parameters:
- name: name
in: formData
description: Nombre del dominio
required: true
type: string
tags:
- Dominios
responses:
200:
description: Datos completos del dominio
schema:
$ref: '#/definitions/completeDomain'
400:
description: Error al enviar el formulario
schema:
$ref: '#/definitions/error400'
/contact:
post:
summary: Enviar formulario de contacto
parameters:
- name: name
in: formData
description: Nombre del usuario
required: true
type: string
- name: email
in: formData
description: Email del usuario
required: true
type: string
- name: phone
in: formData
description: Teléfono del usuario
type: string
- name: message
in: formData
required: true
description: Contenido del mensaje
type: string
tags:
- General
responses:
200:
description: El mensaje se ha enviado correctamente
definitions:
userData:
type: object
properties:
name:
type: string
description: Nombre del usuario
surname:
type: string
description: Apellidos del usuario
email:
type: string
description: Email del usuario
role:
type: string
description: user -> Cliente que ha contratado algún dominio; guest -> Usuario que aún no ha contratado
available:
type: integer
description: Número de dominios que le quedan disponibles
error400:
type: object
properties:
message:
type: string
description: Mensaje de error
userDomains:
type: array
items:
type: object
properties:
name:
type: string
description: Nombre del dominio
status:
type: string
description: Estado del dominio (on=> El dominio NO está disponible, off=> El dominio SÍ está disponible)
registry_expiry_date:
type: string
description: Fecha de caducidad del dominio (Si está ocupado)
format: date-time
completeDomain:
type: object
properties:
name:
type: string
description: Nombre del dominio
title:
type: string
description: Título del sitio web (si procede)
status:
type: string
description: Estado del dominio (on=> El dominio NO está disponible, off=> El dominio SÍ está disponible)
http_code:
type: string
description: Código devuelto por el servidor
server:
type: string
description: Tipo de servidor (si procede)
other_domains:
type: array
description: Otras extensiones para ese nombre de dominio
items:
type: object
properties:
name:
type: string
description: Nombre del dominio alternativo
status:
type: string
description: Estado del dominio (on=> El dominio NO está disponible, off=> El dominio SÍ está disponible)
whois:
type: object
description: Datos whois del dominio (si procede)
properties:
domain_name:
type: string
domain_id:
type: string
description: Referencia al ID de dominio proporcionado por la entidad certificadora
creation_date:
type: string
format: date-time
updated_date:
type: string
format: date-time
registry_expiry_date:
type: string
format: date-time
sponsoring_registrar:
type: string
description: ID de la entidad registradora
iana_id:
type: string
domain_status:
type: array
items:
type: string
description: Estados del dominio
registrant:
type: object
description: Datos de contacto del usuario
properties:
schema:
$ref: '#/definitions/domainContact'
admin:
type: object
description: Datos de contacto administrativos
properties:
schema:
$ref: '#/definitions/domainContact'
tech:
type: object
description: Datos de contacto técnicos
properties:
schema:
$ref: '#/definitions/domainContact'
name_server:
type: array
description: DNS asociadas al dominio
items:
type: string
domainContact:
type: object
properties:
id:
type: string
name:
type: string
organization:
type: string
street:
type: string
city:
type: string
state_province:
type: string
postal_code:
type: string
country:
type: string
phone:
type: string
phone_ext:
type: string
fax:
type: string
fax_ext:
type: string
email:
type: string
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment