2021-04-21 03:14:43 +03:00
import * as React from "react" ;
import * as System from "~/components/system" ;
import CodeBlock from "~/components/system/CodeBlock" ;
const EXAMPLE _CODE _JS = ( key ) => ` const response = await fetch('https://slate.host/api/v2/get', {
2021-05-26 23:05:13 +03:00
method : 'GET' ,
2021-04-21 03:14:43 +03:00
headers : {
'Content-Type' : 'application/json' ,
Authorization : 'Basic ${key}' ,
}
} ) ;
if ( ! response ) {
console . log ( "No response" ) ;
2021-05-26 23:05:13 +03:00
return ;
}
2021-04-21 03:14:43 +03:00
const json = await response . json ( ) ;
if ( json . error ) {
2021-05-27 05:33:19 +03:00
console . log ( json ) ;
2021-04-21 03:14:43 +03:00
} else {
2021-04-23 08:18:46 +03:00
const collections = json . collections ;
2021-04-21 03:14:43 +03:00
const user = json . user ;
} ` ;
const EXAMPLE _CODE _PY = ( key ) => ` import requests
import json as JSON
url = "https://slate.host/api/v2/get"
headers = {
"content-type" : "application/json" ,
"Authorization" : "Basic ${key}" ,
}
2021-05-26 23:05:13 +03:00
r = requests . get ( url , headers = headers )
2021-04-21 03:14:43 +03:00
print ( JSON . dumps ( r . json ( ) , indent = 2 ) ) ` ;
const EXAMPLE _RESPONSE = `
{
decorator : "V2_GET" ,
slates : [
{
id : "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" ,
slatename : "public-example" ,
isPublic : true ,
objects : [
{
id : "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" ,
2021-05-27 05:33:19 +03:00
cid : "bafkreibrpxcv37juaq67it2gu7xyjo5fzq7v3r55ykcgzylvsfljcv3s3a" , // the file URL is "https://slate.textile.io/ipfs/bafkreibrpxcv37juaq67it2gu7xyjo5fzq7v3r55ykcgzylvsfljcv3s3a"
2021-04-21 03:14:43 +03:00
filename : "door.jpg" ,
ownerId : "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" ,
data : {
2021-05-26 23:05:13 +03:00
name : "Door" ,
size : 33676 ,
type : "image/jpeg" ,
blurhash : "U6BzILt700IADjWBx]oz00f6?bs:00Rj_Nt7" ,
2021-04-21 03:14:43 +03:00
} ,
} ,
] ,
ownerId : "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" ,
data : {
2021-04-23 08:18:46 +03:00
body : "just a public collection, nothing special" ,
2021-04-21 03:14:43 +03:00
name : "Public Example" ,
layouts : {
ver : "2.0" ,
layout : [
{
h : 200 ,
w : 200 ,
x : 0 ,
y : 0 ,
z : 0 ,
id : "fce946be-7212-4f62-a74c-adfafd8d0d15" ,
} ,
] ,
fileNames : false ,
defaultLayout : true ,
} ,
url : "https://slate.host/devexamples/public-example" ,
} ,
} ,
] ,
user : {
username : "devexamples" ,
library : [
{
id : "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" ,
2021-05-27 05:33:19 +03:00
cid : "bafkreibrpxcv37juaq67it2gu7xyjo5fzq7v3r55ykcgzylvsfljcv3s3a" , // the file URL is "https://slate.textile.io/ipfs/bafkreibrpxcv37juaq67it2gu7xyjo5fzq7v3r55ykcgzylvsfljcv3s3a"
2021-04-21 03:14:43 +03:00
filename : "door.jpg" ,
ownerId : "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" ,
data : {
name : "Door" ,
size : 33676 ,
type : "image/jpeg" ,
blurhash : "U6BzILt700IADjWBx]oz00f6?bs:00Rj_Nt7" ,
} ,
} ,
] ,
data : {
photo : "https://slate.textile.io/ipfs/cid-goes-here" ,
body : "A user of slate" ,
name : "Bob Smith" ,
} ,
} ,
} ; ` ;
export default class APIDocsGet extends React . Component {
render ( ) {
let APIKey = this . props . APIKey ;
let language = this . props . language ;
let code = {
javascript : EXAMPLE _CODE _JS ( APIKey ) ,
python : EXAMPLE _CODE _PY ( APIKey ) ,
} ;
return (
< React . Fragment >
< System . DescriptionGroup
style = { { maxWidth : 640 , marginTop : 64 } }
label = "Get your data"
2021-04-23 08:18:46 +03:00
description = "This API request returns your user data and collections. If the request body is omitted, the request will return only your public collections by default."
2021-04-21 03:14:43 +03:00
/ >
< CodeBlock
children = { code }
language = { language }
style = { { maxWidth : "820px" } }
title = "Get your data"
multiLang = "true"
onLanguageChange = { this . props . onLanguageChange }
/ >
< br / >
< CodeBlock
children = { EXAMPLE _RESPONSE }
style = { { maxWidth : "820px" } }
language = "javascript"
title = "Get your data response"
/ >
< / R e a c t . F r a g m e n t >
) ;
}
}