如何从 python 向 node.js 发送 post 请求以利用 geckoboard?
How to send post request to node.js from python to utilize geckoboard?
Geckoboard 提供 this documentation 连接到他们的数据集 API,您可以在下面看到实现。
var API_KEY = 'API_KEY';
var gb = require('geckoboard')(
API_KEY
);
gb.datasets.findOrCreate(
{
id: 'sales.by_day',
fields: {
quantity: {
type: 'number',
name: 'Number of sales'
},
gross: {
type: 'money',
name: 'Gross value of sales',
currency_code: "USD"
},
date: {
type: 'date',
name: 'Date'
}
}
},
function (err, dataset) {
if (err) {
console.error(err);
return;
}
dataset.put(
[
{ date: '2016-01-01', quantity: 819, gross: 2457000 },
{ date: '2016-01-02', quantity: 409, gross: 1227000 },
{ date: '2016-01-03', quantity: 164, gross: 492000 }
],
function (err) {
if (err) {
console.error(err);
return;
}
console.log('Dataset created and data added');
}
);
}
);
我想看看是否有办法通过 python(不使用 node.js)post 这些额外数据。这样的事情是可能的还是我必须使用模式?
[
{ date: '2017-01-01', quantity: 1213, gross: 23423 },
{ date: '2017-01-02', quantity: 111, gross: 1313123 },
{ date: '2017-01-03', quantity: 333, gross: 21314 }
]
更新:Geckoboard 现在有自己的官方 Python 数据集客户端库 API https://github.com/geckoboard/geckoboard-python
绝对可以将 Python 与 Geckoboard 的数据集 API 一起使用。您可以使用任何可以通过 JSON 执行 HTTPS 请求的语言或平台 - 尽管 Geckoboard 到目前为止只发布了 Ruby 和 Node 的官方库。
编辑:我在下面做了一个简单的例子,但后来发现了这个:https://github.com/helium/geckoboard-python/
简而言之,您只需要:
PUT
将 schema
对象 https://api.geckoboard.com/datasets
创建数据集
PUT
用 data
数组来 https://api.geckoboard.com/datasets/:id
替换数据集中的所有数据
POST
将 data
数组添加到 https://api.geckoboard.com/datasets/:id
以附加到数据集中的数据
DELETE
到 https://api.geckoboard.com/datasets/:id
删除数据集
这些请求概述于 -- https://developer.geckoboard.com/api-reference/curl/
我没有写太多 Python,所以这可能不是很 Pythonic,但这里有一种方法可以在 Python 中创建一个 Geckoboard
库使用下方的 requests
库为您执行此操作:
import requests
class Geckoboard(object):
def __init__(self, api_key):
self.api_key = api_key
def create(self, name, schema):
url = 'https://api.geckoboard.com/datasets/%s' % name
return requests.put(url, json=schema, auth=(self.api_key, ''))
def delete(self, name):
url = 'https://api.geckoboard.com/datasets/%s' % name
return request.delete(url, auth=(self.api_key, ''))
def replace(self, name, data):
url = 'https://api.geckoboard.com/datasets/%s/data' % name
return requests.put(url, json=data, auth=(self.api_key, ''))
def append(self, name, data):
url = 'https://api.geckoboard.com/datasets/%s/data' % name
return requests.post(url, json=data, auth=(self.api_key, ''))
Geckoboard 提供 this documentation 连接到他们的数据集 API,您可以在下面看到实现。
var API_KEY = 'API_KEY';
var gb = require('geckoboard')(
API_KEY
);
gb.datasets.findOrCreate(
{
id: 'sales.by_day',
fields: {
quantity: {
type: 'number',
name: 'Number of sales'
},
gross: {
type: 'money',
name: 'Gross value of sales',
currency_code: "USD"
},
date: {
type: 'date',
name: 'Date'
}
}
},
function (err, dataset) {
if (err) {
console.error(err);
return;
}
dataset.put(
[
{ date: '2016-01-01', quantity: 819, gross: 2457000 },
{ date: '2016-01-02', quantity: 409, gross: 1227000 },
{ date: '2016-01-03', quantity: 164, gross: 492000 }
],
function (err) {
if (err) {
console.error(err);
return;
}
console.log('Dataset created and data added');
}
);
}
);
我想看看是否有办法通过 python(不使用 node.js)post 这些额外数据。这样的事情是可能的还是我必须使用模式?
[
{ date: '2017-01-01', quantity: 1213, gross: 23423 },
{ date: '2017-01-02', quantity: 111, gross: 1313123 },
{ date: '2017-01-03', quantity: 333, gross: 21314 }
]
更新:Geckoboard 现在有自己的官方 Python 数据集客户端库 API https://github.com/geckoboard/geckoboard-python
绝对可以将 Python 与 Geckoboard 的数据集 API 一起使用。您可以使用任何可以通过 JSON 执行 HTTPS 请求的语言或平台 - 尽管 Geckoboard 到目前为止只发布了 Ruby 和 Node 的官方库。
编辑:我在下面做了一个简单的例子,但后来发现了这个:https://github.com/helium/geckoboard-python/
简而言之,您只需要:
PUT
将schema
对象https://api.geckoboard.com/datasets
创建数据集PUT
用data
数组来https://api.geckoboard.com/datasets/:id
替换数据集中的所有数据POST
将data
数组添加到https://api.geckoboard.com/datasets/:id
以附加到数据集中的数据DELETE
到https://api.geckoboard.com/datasets/:id
删除数据集
这些请求概述于 -- https://developer.geckoboard.com/api-reference/curl/
我没有写太多 Python,所以这可能不是很 Pythonic,但这里有一种方法可以在 Python 中创建一个 Geckoboard
库使用下方的 requests
库为您执行此操作:
import requests
class Geckoboard(object):
def __init__(self, api_key):
self.api_key = api_key
def create(self, name, schema):
url = 'https://api.geckoboard.com/datasets/%s' % name
return requests.put(url, json=schema, auth=(self.api_key, ''))
def delete(self, name):
url = 'https://api.geckoboard.com/datasets/%s' % name
return request.delete(url, auth=(self.api_key, ''))
def replace(self, name, data):
url = 'https://api.geckoboard.com/datasets/%s/data' % name
return requests.put(url, json=data, auth=(self.api_key, ''))
def append(self, name, data):
url = 'https://api.geckoboard.com/datasets/%s/data' % name
return requests.post(url, json=data, auth=(self.api_key, ''))