mirror of
https://github.com/infiniflow/ragflow.git
synced 2026-06-29 15:31:05 +08:00
Example: list_datasets.sh (#16335)
### Type of change - [x] Other (please describe): example Signed-off-by: Jin Hai <haijin.chn@gmail.com>
This commit is contained in:
108
example/http/list_datasets.sh
Normal file
108
example/http/list_datasets.sh
Normal file
@@ -0,0 +1,108 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# Copyright 2026 The InfiniFlow Authors. All Rights Reserved.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
|
||||
# Check for jq
|
||||
if ! command -v jq &> /dev/null; then
|
||||
echo "jq could not be found, please install it to run this example."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Usage
|
||||
usage() {
|
||||
echo "Usage: $0 <host> <api_key> [--page PAGE] [--page-size PAGE_SIZE] [--orderby FIELD] [--desc true|false] [--name NAME] [--id ID]"
|
||||
echo ""
|
||||
echo "Required arguments:"
|
||||
echo " host RAGFlow server address (e.g. http://localhost:9380)"
|
||||
echo " api_key Your API key"
|
||||
echo ""
|
||||
echo "Optional arguments:"
|
||||
echo " --page Page number"
|
||||
echo " --page-size Number of items per page"
|
||||
echo " --orderby Field to order by"
|
||||
echo " --desc Sort in descending order (true/false)"
|
||||
echo " --name Filter by dataset name"
|
||||
echo " --id Filter by dataset ID"
|
||||
exit 1
|
||||
}
|
||||
|
||||
# Parse required arguments
|
||||
if [ $# -lt 2 ]; then
|
||||
usage
|
||||
fi
|
||||
|
||||
HOST="$1"
|
||||
API_KEY="$2"
|
||||
shift 2
|
||||
|
||||
# Parse optional arguments
|
||||
PAGE=""
|
||||
PAGE_SIZE=""
|
||||
ORDERBY=""
|
||||
DESC=""
|
||||
NAME=""
|
||||
ID=""
|
||||
|
||||
while [[ $# -gt 0 ]]; do
|
||||
case $1 in
|
||||
--page)
|
||||
PAGE="$2"; shift 2 ;;
|
||||
--page-size)
|
||||
PAGE_SIZE="$2"; shift 2 ;;
|
||||
--orderby)
|
||||
ORDERBY="$2"; shift 2 ;;
|
||||
--desc)
|
||||
DESC="$2"; shift 2 ;;
|
||||
--name)
|
||||
NAME="$2"; shift 2 ;;
|
||||
--id)
|
||||
ID="$2"; shift 2 ;;
|
||||
-h|--help)
|
||||
usage ;;
|
||||
*)
|
||||
echo "Unknown option: $1"
|
||||
usage ;;
|
||||
esac
|
||||
done
|
||||
|
||||
# Build query string
|
||||
QUERY=""
|
||||
[ -n "$PAGE" ] && QUERY="${QUERY}&page=${PAGE}"
|
||||
[ -n "$PAGE_SIZE" ] && QUERY="${QUERY}&page_size=${PAGE_SIZE}"
|
||||
[ -n "$ORDERBY" ] && QUERY="${QUERY}&orderby=${ORDERBY}"
|
||||
[ -n "$DESC" ] && QUERY="${QUERY}&desc=${DESC}"
|
||||
[ -n "$NAME" ] && QUERY="${QUERY}&name=${NAME}"
|
||||
[ -n "$ID" ] && QUERY="${QUERY}&id=${ID}"
|
||||
|
||||
# Remove leading '&'
|
||||
QUERY=$(echo "$QUERY" | sed 's/^&//')
|
||||
[ -n "$QUERY" ] && QUERY="?${QUERY}"
|
||||
|
||||
# Store, print and make the request
|
||||
CURL_CMD=(curl -s --request GET \
|
||||
--url "${HOST}/api/v1/datasets${QUERY}" \
|
||||
--header "Authorization: Bearer ${API_KEY}")
|
||||
echo "${CURL_CMD[@]}"
|
||||
RESPONSE=$("${CURL_CMD[@]}")
|
||||
|
||||
# Check for errors
|
||||
if echo "$RESPONSE" | jq -e '.code != 0' > /dev/null 2>&1; then
|
||||
echo "Error: $(echo "$RESPONSE" | jq -r '.message // .')"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Output result
|
||||
echo "$RESPONSE" | jq .
|
||||
Reference in New Issue
Block a user