RESTful

[TOC]

简介

CNEOST提供了RESTful的访问接口,用于用户的批量数据获取。目前公开接口全部采用GET方式访问。用户可通过标准REST客户工具进行访问。除下载文件功能外,返回JSON类型,便于用户进一步处理。对于任何平台用户,我强烈建议使用命令行工具wgetcurl。通过互联网络很容易找到适合你平台的版本下载,请尽量使用最新版本. windows版本的wget二进制软件可从下面的地址获得:https://eternallybored.org/misc/wget/. curl的官方网站提供了各平台下的二进制软件,https://curl.haxx.se/download.html

授权

REST接口仅向授权用户开放,请联系CNEOST获取授权。接口采用APIKEY方式认证,在HTTP头中增加cneost_key:yourkey信息即可。采用curl时命令为

curl -H "cneost_key:yourkey"  url

采用wget时为:

wget --header="cneost_key:yourkey" url

使用方式

REST服务的调用接口为: http://www.cneost.org:8088/db/resource/query

相面将具体介绍每个字段。

db

db字段为需要访问的数据库名,目前提供的有

DB Type Description
device 1 测站和设备的信息
nt_2016a_dr 2 Reduced images of year 2016
nt_2016a_raw 2 RAW images of year 2016
nt_2015a_raw 2 RAW images of year 2015
nt_2014a_raw 2 RAW images of year 2014
nt_2013a_raw 2 RAW images of year 2013
legacy 2 Legacy RAW images with 4K SI CCD

其中除device数据库外均为CNEOST采集的图像数据,包括了原始图像和处理后的图像(FITS格式)。处理包括了BIAS,DARK,FLAT修正,并且增加了天文定位信息的WCS头文件。

Resource

对于所有图像数据库(即Type=2)的DB,支持下述4类资源:

Resource Type Description
list JSON Query Result
hdu TXT HDU information
thumb FITS a fits of 512Kx512k for preview
file FITS Full image FITS file

对于device数据库,目前提供的资源为:

Resource Type Description
ccdwin JSON Voltage and temperature of CCD and Window
shutter JSON Shutter Open and Close
weather JSON Weather information of the Station

Query

常规

对于返回类型为JSON的资源,query采用key/value形式:如

http://www.cneost.org:8088/db/resource/key1/vvalue1/key2/value2/key3/value3

其中key可以时任意数据集合字段,对于图像(Type=2)数据库可以是任意FITS HDU中的字段。此外附加了一下辅助字段:

KEY VALUE Description
from YYYY-MM-DD Begin Time
to YYYY-MM-DD End Time
limit N(integer) maximum number of results
skip N(integer) Skip first N result

对于其他字段VALUE可取值如下;

# VALUE Description
1 A%B >=A && <B
2 %B <B
3 A% >A
4 !R2 not like R
5 R1 like R
6 =S equals to S
7 !=S not equals to S
1. R(不需要包括/)将会处理为正则表达式, S作为字符串处理,A,B作为浮点数.
2. ! 在命令行输入为 \!

图像

对于非JSON返回类型的资源,都是返回一个文件,query仅支持包含一个value,该值可为文件全名,文件名不包含.FITS的最后若干字符,或内部`_id,系统将自动识别。fsfsfsd

例如:

curl -qa -H "cneost_key:code"  http://www.cneost.org:8088/nt_2016a_raw/file/187090

将会返回以187090.FITS结尾的FITS文件

高级

REST服务做了普适处理,对于非GridFS的库和集合,均可自动查询,db为数据库名,resouce为该库下的集合名,query中字段为集合中的字段,其中from和to会自动映射为集合中time字段,time字段默认为UNIX时间戳(秒)。

Cookbook

此处将给出常用查询的wget和curl命令,TBD