751 lines
17 KiB
YAML
751 lines
17 KiB
YAML
swagger: '2.0'
|
|
info:
|
|
title: Dotclear API
|
|
description: Manage your(s) blogs with this API
|
|
version: "0.0.1"
|
|
# the domain of the service
|
|
host: your.blog.com
|
|
# array of all schemes that your API supports
|
|
schemes:
|
|
- https
|
|
# will be prefixed to all paths
|
|
# (part of plugin url)
|
|
basePath: /rest
|
|
produces:
|
|
- application/json
|
|
paths:
|
|
/blogs:
|
|
get:
|
|
summary: Get list of availables blogs
|
|
responses:
|
|
200:
|
|
description: array serving blogs properties
|
|
schema:
|
|
title: blogs
|
|
type: array
|
|
items:
|
|
$ref: '#/definitions/blog'
|
|
default:
|
|
description: Unexpected error
|
|
schema:
|
|
$ref: '#/definitions/Error'
|
|
post:
|
|
summary: Create a new blog
|
|
parameters:
|
|
- name: blog
|
|
in: body
|
|
description: The blog you want to create
|
|
schema:
|
|
$ref: '#/definitions/blog'
|
|
required: true
|
|
responses:
|
|
200:
|
|
description: array containing the new blog's identifiant
|
|
schema:
|
|
$ref: '#/definitions/Ids'
|
|
default:
|
|
description: Unexpected error
|
|
schema:
|
|
$ref: '#/definitions/Error'
|
|
/blogs/{blog-id}:
|
|
get:
|
|
summary: Get a blog poperties
|
|
parameters:
|
|
- name: blog-id
|
|
in: path
|
|
type: string
|
|
required: true
|
|
responses:
|
|
200:
|
|
description: array containing blog properties. This list of attributes is not exhaustive.
|
|
schema:
|
|
$ref: '#/definitions/blogProperties'
|
|
404:
|
|
description: this blog id does not exists
|
|
default:
|
|
description: Unexpected error
|
|
schema:
|
|
$ref: '#/definitions/Error'
|
|
patch:
|
|
summary: Update part of blog properties
|
|
parameters:
|
|
- name: blog-id
|
|
in: path
|
|
type: string
|
|
required: true
|
|
- name: blog
|
|
in: body
|
|
description: This list of parameters is not exhaustive
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/blogProperties'
|
|
responses:
|
|
200:
|
|
description: array containing the edited blog's identifiant
|
|
schema:
|
|
$ref: '#/definitions/Ids'
|
|
404:
|
|
description: this blog id does not exists
|
|
default:
|
|
description: Unexpected error
|
|
schema:
|
|
$ref: '#/definitions/Error'
|
|
put:
|
|
summary: Overwrite blog Properties (if a parameter is not set, his value will be erased by de default value)
|
|
parameters:
|
|
- name: blog-id
|
|
in: path
|
|
type: string
|
|
required: true
|
|
- name: blog
|
|
in: body
|
|
description: This list of parameters is not exhaustive
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/blogProperties'
|
|
responses:
|
|
200:
|
|
description: array containing the edited blog's identifiant
|
|
schema:
|
|
$ref: '#/definitions/Ids'
|
|
404:
|
|
description: this blog id does not exists
|
|
default:
|
|
description: Unexpected error
|
|
schema:
|
|
$ref: '#/definitions/Error'
|
|
|
|
delete:
|
|
summary: Delete this blog
|
|
parameters:
|
|
- name: blog-id
|
|
in: path
|
|
type: string
|
|
required: true
|
|
responses:
|
|
200:
|
|
description: array containing the deleted blog's identifiant
|
|
schema:
|
|
$ref: '#/definitions/Ids'
|
|
404:
|
|
description: this blog id does not exists
|
|
default:
|
|
description: Unexpected error
|
|
schema:
|
|
$ref: '#/definitions/Error'
|
|
|
|
/{blog-id}/posts:
|
|
get:
|
|
summary: Get list of posts
|
|
parameters:
|
|
- name: blog-id
|
|
in: path
|
|
type: string
|
|
required: true
|
|
- name: filters
|
|
in: query
|
|
description: sql like filters
|
|
type: array
|
|
items:
|
|
type: string
|
|
required: false
|
|
- name: fields
|
|
in: query
|
|
type: array
|
|
items:
|
|
type: string
|
|
required: false
|
|
description: Fields you want to get. If unset, fields are post_id, post_url, post_status, post_title, post_date
|
|
responses:
|
|
200:
|
|
description: list of posts
|
|
schema:
|
|
title: posts
|
|
type: array
|
|
items:
|
|
$ref: '#/definitions/dc_post'
|
|
|
|
default:
|
|
description: Unexpected error
|
|
schema:
|
|
$ref: '#/definitions/Error'
|
|
post:
|
|
summary: Create a new post
|
|
parameters:
|
|
- name: blog-id
|
|
in: path
|
|
type: string
|
|
required: true
|
|
- name: properties
|
|
in: body
|
|
description: Some non required fields you don't define will be set (default value) by the API
|
|
schema:
|
|
$ref: '#/definitions/new_dc_post'
|
|
responses:
|
|
200:
|
|
description: Id of newly created post
|
|
schema:
|
|
$ref: '#/definitions/Ids'
|
|
default:
|
|
description: Unexpected error
|
|
schema:
|
|
$ref: '#/definitions/Error'
|
|
|
|
/{blog-id}/posts/{post-id}:
|
|
get:
|
|
summary: Get a post entry
|
|
parameters:
|
|
- name: blog-id
|
|
in: path
|
|
type: string
|
|
required: true
|
|
- name: post-id
|
|
in: path
|
|
type: string
|
|
required: true
|
|
- name: filters
|
|
in: query
|
|
description: sql like filters
|
|
type: array
|
|
items:
|
|
type: string
|
|
required: false
|
|
- name: fields
|
|
in: query
|
|
type: array
|
|
items:
|
|
type: string
|
|
required: false
|
|
description: Fields you want to get. If unset, all available fields will be get.
|
|
responses:
|
|
200:
|
|
description: The post values
|
|
schema:
|
|
$ref: '#/definitions/dc_post'
|
|
default:
|
|
description: Unexpected error
|
|
schema:
|
|
$ref: '#/definitions/Error'
|
|
patch:
|
|
summary: Update part of a post entry's properties
|
|
parameters:
|
|
- name: blog-id
|
|
in: path
|
|
type: string
|
|
required: true
|
|
- name: post-id
|
|
in: path
|
|
type: string
|
|
required: true
|
|
- name: properties
|
|
in: body
|
|
schema:
|
|
$ref: '#/definitions/dc_post'
|
|
responses:
|
|
200:
|
|
description: array containing the updated post's id
|
|
schema:
|
|
$ref: '#/definitions/Ids'
|
|
404:
|
|
description: this post does not exists
|
|
default:
|
|
description: Unexpected error
|
|
schema:
|
|
$ref: '#/definitions/Error'
|
|
put:
|
|
summary: Update full blog properties. Unsetted parameters will be erased
|
|
parameters:
|
|
- name: blog-id
|
|
in: path
|
|
type: string
|
|
required: true
|
|
- name: post-id
|
|
in: path
|
|
type: string
|
|
required: true
|
|
- name: properties
|
|
in: body
|
|
schema:
|
|
$ref: '#/definitions/new_dc_post'
|
|
responses:
|
|
200:
|
|
description: array containing the updated post's id
|
|
schema:
|
|
$ref: '#/definitions/Ids'
|
|
404:
|
|
description: this post does not exists
|
|
default:
|
|
description: Unexpected error
|
|
schema:
|
|
$ref: '#/definitions/Error'
|
|
delete:
|
|
summary: Delete the post
|
|
parameters:
|
|
- name: blog-id
|
|
in: path
|
|
type: string
|
|
required: true
|
|
- name: post-id
|
|
in: path
|
|
type: string
|
|
required: true
|
|
responses:
|
|
200:
|
|
description: array containing the deleted post's id
|
|
schema:
|
|
$ref: '#/definitions/Ids'
|
|
404:
|
|
description: this post does not exists
|
|
default:
|
|
description: Unexpected error
|
|
schema:
|
|
$ref: '#/definitions/Error'
|
|
/{blog-id}/categories:
|
|
get:
|
|
summary: Get list of available categories
|
|
parameters:
|
|
- name: blog-id
|
|
in: path
|
|
type: string
|
|
required: true
|
|
responses:
|
|
200:
|
|
description: array containing the categories properties
|
|
schema:
|
|
title: categories
|
|
type: array
|
|
items:
|
|
$ref: '#/definitions/category'
|
|
default:
|
|
description: Unexpected error
|
|
schema:
|
|
$ref: '#/definitions/Error'
|
|
post:
|
|
summary: Create a new category
|
|
parameters:
|
|
- name: blog-id
|
|
in: path
|
|
type: string
|
|
required: true
|
|
- name: properties
|
|
in: body
|
|
schema:
|
|
$ref: '#/definitions/new_category'
|
|
|
|
responses:
|
|
200:
|
|
description: array containing the created category id
|
|
schema:
|
|
$ref: '#/definitions/Ids'
|
|
default:
|
|
description: Unexpected error
|
|
schema:
|
|
$ref: '#/definitions/Error'
|
|
|
|
/{blog-id}/categories/{cat-id}:
|
|
get:
|
|
summary: get one category properties
|
|
parameters:
|
|
- name: blog-id
|
|
in: path
|
|
type: string
|
|
required: true
|
|
- name: cat-id
|
|
in: path
|
|
type: string
|
|
required: true
|
|
responses:
|
|
200:
|
|
description: array containing the created category properties
|
|
schema:
|
|
$ref: '#/definitions/category'
|
|
default:
|
|
description: Unexpected error
|
|
schema:
|
|
$ref: '#/definitions/Error'
|
|
patch:
|
|
summary: Update some attributes
|
|
parameters:
|
|
- name: blog-id
|
|
in: path
|
|
type: string
|
|
required: true
|
|
- name: cat-id
|
|
in: path
|
|
type: string
|
|
required: true
|
|
- name: category
|
|
in: body
|
|
schema:
|
|
$ref: '#/definitions/category'
|
|
responses:
|
|
200:
|
|
description: array containing the modified category id
|
|
schema:
|
|
$ref: '#/definitions/Ids'
|
|
default:
|
|
description: Unexpected error
|
|
schema:
|
|
$ref: '#/definitions/Error'
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
definitions:
|
|
blog:
|
|
type: object
|
|
required:
|
|
- blog_id
|
|
- blog_name
|
|
- blog_url
|
|
properties:
|
|
blog_id:
|
|
type: string
|
|
blog_name:
|
|
type: string
|
|
blog_url:
|
|
type: string
|
|
description:
|
|
type: string
|
|
blog_status:
|
|
type: string
|
|
enum:
|
|
- En ligne
|
|
- Hors ligne
|
|
- Retiré
|
|
url_scan:
|
|
type: string
|
|
enum:
|
|
- query_string
|
|
- path_info
|
|
Ids:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: integer
|
|
description: New blog id
|
|
blogProperties:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
name:
|
|
type: string
|
|
url:
|
|
type: string
|
|
description:
|
|
type: string
|
|
author:
|
|
type: string
|
|
allow_comments:
|
|
type: boolean
|
|
allow_trackbacks:
|
|
type: boolean
|
|
blog_timezone:
|
|
type: string
|
|
comment_preview_optional:
|
|
type: string
|
|
comments_nofollow:
|
|
type: boolean
|
|
comments_pub:
|
|
type: boolean
|
|
comments_ttl:
|
|
type: integer
|
|
copyright_notice:
|
|
type: string
|
|
csp_admin_default:
|
|
type: string
|
|
csp_admin_img:
|
|
type: string
|
|
csp_admin_on:
|
|
type: boolean
|
|
csp_admin_report_only:
|
|
type: boolean
|
|
csp_admin_script:
|
|
type: string
|
|
csp_admin_style:
|
|
type: string
|
|
date_format:
|
|
type: string
|
|
date_formats:
|
|
type: array
|
|
items:
|
|
type: string
|
|
format: string
|
|
editor:
|
|
type: string
|
|
enable_html_filter:
|
|
type: boolean
|
|
enable_xmlrpc:
|
|
type: boolean
|
|
import_feed_ip_regexp:
|
|
type: string
|
|
import_feed_no_private_ip:
|
|
type: boolean
|
|
import_feed_port_regexp:
|
|
type: string
|
|
import_feed_url_control:
|
|
type: boolean
|
|
inc_subcats:
|
|
type: boolean
|
|
jquery_migrate_mute:
|
|
type: boolean
|
|
jquery_version:
|
|
type: string
|
|
lang:
|
|
type: string
|
|
media_exclusion:
|
|
type: string
|
|
media_flash_fallback:
|
|
type: boolean
|
|
media_img_default_alignment:
|
|
type: string
|
|
media_img_default_legend:
|
|
type: string
|
|
media_img_default_link:
|
|
type: string
|
|
media_img_default_size:
|
|
type: string
|
|
media_img_m_size:
|
|
type: integer
|
|
media_img_no_date_alone:
|
|
type: string
|
|
media_img_s_size:
|
|
type: integer
|
|
media_img_t_size:
|
|
type: integer
|
|
media_img_title_pattern:
|
|
type: string
|
|
media_img_use_dto_first:
|
|
type: string
|
|
media_video_height:
|
|
type: integer
|
|
media_video_width:
|
|
type: integer
|
|
nb_comment_per_feed:
|
|
type: integer
|
|
nb_post_for_home:
|
|
type: integer
|
|
nb_post_per_feed:
|
|
type: integer
|
|
nb_post_per_page:
|
|
type: integer
|
|
no_search:
|
|
type: boolean
|
|
note_title_tag:
|
|
type: string
|
|
post_url_format:
|
|
type: string
|
|
prevents_clickjacking:
|
|
type: string
|
|
public_path:
|
|
type: string
|
|
public_url:
|
|
type: string
|
|
robots_policy:
|
|
type: string
|
|
short_feed_items:
|
|
type: boolean
|
|
simpleMenu:
|
|
type: array
|
|
items:
|
|
type: string
|
|
simpleMenu_active:
|
|
type: boolean
|
|
store_plugin_url:
|
|
type: string
|
|
store_theme_url:
|
|
type: string
|
|
theme:
|
|
type: string
|
|
themes_path:
|
|
type: string
|
|
themes_url:
|
|
type: string
|
|
time_format:
|
|
type: string
|
|
time_formats:
|
|
type: array
|
|
items:
|
|
type: string
|
|
tpl_allow_php:
|
|
type: boolean
|
|
tpl_use_cache:
|
|
type: boolean
|
|
trackbacks_pub:
|
|
type: boolean
|
|
trackbacks_ttl:
|
|
type: integer
|
|
url_scan:
|
|
type: string
|
|
use_smilies:
|
|
type: boolean
|
|
wiki_comments:
|
|
type: boolean
|
|
new_dc_post:
|
|
type: object
|
|
required:
|
|
- post_content
|
|
- post_title
|
|
properties:
|
|
cat_id:
|
|
type: string
|
|
post_dt:
|
|
type: string
|
|
post_tz:
|
|
type: string
|
|
post_creadt:
|
|
type: string
|
|
post_upddt:
|
|
type: string
|
|
post_password:
|
|
type: string
|
|
post_type:
|
|
type: string
|
|
post_format:
|
|
type: string
|
|
post_url:
|
|
type: string
|
|
post_lang:
|
|
type: string
|
|
post_title:
|
|
type: string
|
|
post_excerpt:
|
|
type: string
|
|
post_excerpt_xhtml:
|
|
type: string
|
|
post_content:
|
|
type: string
|
|
post_content_xhtml:
|
|
type: string
|
|
post_notes:
|
|
type: string
|
|
post_meta:
|
|
type: string
|
|
post_words:
|
|
type: string
|
|
post_status:
|
|
type: string
|
|
enum:
|
|
- Pending
|
|
- Scheduled
|
|
- Unpublished
|
|
- Published
|
|
post_selected:
|
|
type: boolean
|
|
post_position:
|
|
type: string
|
|
post_open_comment:
|
|
type: boolean
|
|
post_open_tb:
|
|
type: boolean
|
|
dc_post:
|
|
type: object
|
|
properties:
|
|
post_id:
|
|
type: string
|
|
blog_id:
|
|
type: string
|
|
user_id:
|
|
type: string
|
|
cat_id:
|
|
type: string
|
|
post_dt:
|
|
type: string
|
|
post_tz:
|
|
type: string
|
|
post_creadt:
|
|
type: string
|
|
post_upddt:
|
|
type: string
|
|
post_password:
|
|
type: string
|
|
post_type:
|
|
type: string
|
|
post_format:
|
|
type: string
|
|
post_url:
|
|
type: string
|
|
post_lang:
|
|
type: string
|
|
post_title:
|
|
type: string
|
|
post_excerpt:
|
|
type: string
|
|
post_excerpt_xhtml:
|
|
type: string
|
|
post_content:
|
|
type: string
|
|
post_content_xhtml:
|
|
type: string
|
|
post_notes:
|
|
type: string
|
|
post_meta:
|
|
type: string
|
|
post_words:
|
|
type: string
|
|
post_status:
|
|
type: string
|
|
enum:
|
|
- Pending
|
|
- Scheduled
|
|
- Unpublished
|
|
- Published
|
|
post_selected:
|
|
type: boolean
|
|
post_position:
|
|
type: string
|
|
post_open_comment:
|
|
type: boolean
|
|
post_open_tb:
|
|
type: boolean
|
|
nb_comment:
|
|
type: integer
|
|
nb_trackback:
|
|
type: integer
|
|
post_firstpub:
|
|
type: string
|
|
category:
|
|
type: object
|
|
properties:
|
|
cat_id:
|
|
type: integer
|
|
cat_title:
|
|
type: string
|
|
cat_url:
|
|
type: string
|
|
cat_desc:
|
|
type: string
|
|
cat_position:
|
|
type: integer
|
|
temporary:
|
|
type: boolean
|
|
new_category:
|
|
type: object
|
|
required:
|
|
- cat_title
|
|
properties:
|
|
cat_title:
|
|
type: string
|
|
cat_url:
|
|
type: string
|
|
cat_desc:
|
|
type: string
|
|
cat_position:
|
|
type: integer
|
|
temporary:
|
|
type: boolean
|
|
|
|
Error:
|
|
type: object
|
|
properties:
|
|
code:
|
|
type: integer
|
|
format: int32
|
|
message:
|
|
type: string
|
|
fields:
|
|
type: string |