sys/faq
ID 问题 类别 答案 Tag
8
Shujuqiu Encrypted Text Guide
function

Shujuqiu supports a new type of text: encrypted text for your sensitive data, e.g. your diary, password, credit card information, etc.

You can set a password to encrypted the text by Javascript AES encryption method on your browser. Shujuqiu will only save the encrypted text in the server. So if you forget your password, there is no way to recover your information.

7
Shujuqiu File Center Guide
function

Shujuqiu supports uploading files to file center, which can be accessed via the folder icon on the upper right menu.

You can created your own folder, upload you local files, with description supported. You can also rename your folder/document, or move folder/document to other folders via the Edit link.

You can also download the document or the whole folder (zip file) via the download link.

We also support copy link or Markdown code for document, which is helpful for Markdown writing.

6
Shujiuqiu Public API
function

Overview

The SPA (Shujuqiu Public API) allow you to operate your data through a public API. It is opened for VIP and SVIP users only.

The API is under https://api.shujuqiu.com/spa/v1.

You need an access token to access the API, which can be obtained by the login API.

NPA API has rate limiting in order to improve server performance for all users. We only allow 100/1000 calls per day for VIP/SVIP users respectively. Limits are reset in middle night UTC time.

All API method are POST. Each API returns a JSON data as response. The JSON is a dictionary with

  • status: 'OK'/'ERROR'
  • data: Returned data for OK status, could be empty
  • errors: only for ERROR status, it is an array of json dictionary with
    • code: error code.
    • message: error message.
  • meta: meta information.
    • time: Current UTC time
    • tid: unique transaction ID.
    • version: API version, 1.0.
    • token_limit: 100 for VIP, 1000 for SVIP, 0 otherwise.
    • token_remaining: remaining token of today, access will be denied if no token
    • token_reset: token reset time
    • last_active: last access time

For example:

{
  "status": "OK",
  "meta": {
    "time": "2020-12-24T11:41:34",
    "tid": "1608810094_AisU",
    "version": "1.0",
    "token_limit": 1000,
    "token_remaining": 1980,
    "last_active": "2020-12-24T11:41:34",
    "token_reset": "2020-12-25T00:00:00"
  },
  "data": {
      ......
  }
}

API List

API Note
User
login login to get access token
Table & Records
:table_slug/get_records Get all records of a table
:table_slug/get_records/:record_id Get specific record of a table
:table_slug/create_record Add a new record to the table
:table_slug/import_records Import list of records by CSV file to a table
:table_slug/update_record/:record_id Update specific record of a table
:table_slug/destroy_records Destroy all records of a table
:table_slug/destroy_records/:record_id Destroy specific record of a table

User API

POST /spa/v1/login.json

This API provides login method for get access token.

Params

  • name: user name
  • password: your password

Response

  • access_token: access token for your following requests
  • token_type: bearer
  • expires_in: how many seconds can the access token be valid. After that, you must re-login and update token.

Table API

We provide CRUD APIs for table records. You need table slug for accessing the API, which can be find in the table detail information page (slug URL, e.g. 1or1).

POST /spa/v1/:table_slug/get_records.json

This API provides all records of a table.

Params

NA

Response

  • records: array of records, the record structure is defined by your table schema.

POST /spa/v1/:table_slug/get_records/:record_id.json

This API provides record information specified by record ID

Params

NA

Response

  • record: the record structure is defined by your table schema.

POST /spa/v1/:table_slug/create_record.json

This API add a new record to the table

Params

  • record: the record structure is defined by your table schema.

Response

  • record: ID assigned

POST /spa/v1/:table_slug/import_records.json

This API add a list of new records to the table by CSV file

Params

  • file: CSV file, with first line as table column name, each row for a record respectively.

Response

NA

Example

# NOTE: do not use -H 'Content-Type:application/json'
curl -i -H "Accept: application/json" -H 'Authorization: Bearer your_access_token' -X POST -F "file=your_file.csv" "https://api.shujuqiu.com/spa/v1/:table_slug/import_records.json"

POST /spa/v1/:table_slug/update_record/:record_id.json

This API update a specified record

Params

  • record: the record structure is defined by your table schema.

Response

  • record: the record structure is defined by your table schema.

POST /spa/v1/:table_slug/destroy_records.json

This API destroy all records of a table

Params

NA

Response

NA

POST /spa/v1/:table_slug/destroy_records/:record_id.json

This API destroy a record specified by ID

Params

NA

Response

NA

5
Importing Data
function

You can add a batch of records by uploading a CSV file. The table page shows the upload link.

You can use any editor to write the CSV file, or exporting an Excel file to CSV format.

The first line of the CSV file must be the header, shows the name of the column. For example, if you have a table with three columns, with names title, content and date. The CSV file should be like:

title, content, date
"This is my first article", "This is the content of my first article", "2020-12-30"
"This is my second article", "This is the content of my second article", "2020-12-31"
4
User levels
function

There are three types of users:

  1. regular: All users. All tables are public.
  2. VIP: VIP users. Support private tables. VIP users need service fee per year.
  3. SVIP: Super VIP users. This is system selected VIP users.

The user permission is:

Permission Regular VIP SVIP
Free YES NO NO
Private tables NO YES YES
# of tables 100 1000 10000
# of records per table 1000 10000 100000
# of export/imports per day per table 1 10 100
3
Table permission
function

Each table has a read permission and a write permission setting.

The read permission controls who can access your data.

  1. all: The data is open to public
  2. user: The data is open to all shujuqiu users
  3. vip: The data is open to all VIP users
  4. owner: The data is private. Please note that the vip/owner option is available for VIP+ users only.

The read permission controls who can contributes your data.

  1. all: All user can add records to your table including anonymous users
  2. user: All shujuqiu users can add records
  3. vip: All VIP user can add records
  4. owner: Only the table owner can add records. Please note that only the record contributor or table owner can update/delete the record.
2
Supported Data Types
function

Table support the following types. Please note that some types are still in beta version, could be changed later.

Basic Type:

  1. integer
  2. float
  3. decimal
  4. boolean
  5. string
  6. text
  7. date
  8. time
  9. datetime
  10. enum (beta)
  11. reference (beta)

Formatted Types:

  1. title
  2. markdown
  3. rich text
  4. URL
  5. image
  6. video (beta)
  7. audio (beta)
  8. encrypted text

Advanced Types (beta):

  1. name
  2. email
  3. phone
  4. im (instance messenger)
    1. wechat
    2. QQ
  5. address
  6. country
  7. pid (personal ID)
    1. rid (residential ID)
    2. passport
  8. money
  9. IP address
  10. GPS location
1
Markdown Syntax
function

Headers

# This is an h1 header
## This is an h2 header
###### This is an h6 header

This is an h1 header

This is an h2 header

This is an h6 header

Emphasis

*This text will be italic*
**This text will be bold**
_This will be underline_
~~This will be strikethrough~~
_You ***can*** combine them_

This text will be italic
This text will be bold
This will be underline
This will be strikethrough
You can combine them

Lists

Unordered

* Item 1
* Item 2
  * Item 2a
  * Item 2b
  • Item 1
  • Item 2
    • Item 2a
    • Item 2b

Ordered

1. Item 1
1. Item 2
1. Item 3
   1. Item 3a
   1. Item 3b
  1. Item 1
  2. Item 2
  3. Item 3
    1. Item 3a
    2. Item 3b

Images

![GitHub Logo](/images/logo.png)

GitHub Logo

Links

http://github.com - automatic!
[GitHub](http://github.com)

http://github.com - automatic!
GitHub

Blockquotes

As Kanye West said:
> We're living the future so
> the present is our past.
>> nested 

As Kanye West said:

We're living the future so
the present is our past.

nested

Inline code

I think you should use an `<addr>` element here instead.

I think you should use an <addr> element here instead.

Block code

```
if (isAwesome){
  return true
}
```
if (isAwesome){
  return true
}

Tables

First Header | Second Header
------------ | -------------
Content from cell 1 | Content from cell 2
Content in the first column | Content in the second column
First Header Second Header
Content from cell 1 Content from cell 2
Content in the first column Content in the second column

Separator

---