126 lines
2.8 KiB
Markdown
126 lines
2.8 KiB
Markdown
# GraphQL Auction Schema Explorer
|
|
|
|
A Python script for exploring and testing GraphQL queries against the TBAuctions storefront API. This tool helps understand the auction schema by testing different query structures and viewing the responses.
|
|
|
|
## Features
|
|
|
|
- Three pre-configured GraphQL queries with varying levels of detail
|
|
- Asynchronous HTTP requests using aiohttp for efficient testing
|
|
- Error handling and formatted JSON output
|
|
- Configurable auction ID, locale, and platform parameters
|
|
|
|
## Prerequisites
|
|
|
|
- Python 3.7 or higher
|
|
- Required packages: `aiohttp`
|
|
|
|
## Installation
|
|
|
|
1. Clone or download this script
|
|
2. Install dependencies:
|
|
|
|
```bash
|
|
pip install aiohttp
|
|
```
|
|
|
|
## Usage
|
|
|
|
Run the script directly:
|
|
|
|
```bash
|
|
python auction_explorer.py
|
|
```
|
|
|
|
Or make it executable and run:
|
|
|
|
```bash
|
|
chmod +x auction_explorer.py
|
|
./auction_explorer.py
|
|
```
|
|
|
|
## Queries Included
|
|
|
|
The script tests three different query structures:
|
|
|
|
### 1. `viewingDays_simple`
|
|
Basic query that retrieves city and country code for viewing days.
|
|
|
|
### 2. `viewingDays_with_times`
|
|
Extended query that includes date ranges (`from` and `to`) along with city information.
|
|
|
|
### 3. `full_auction`
|
|
Comprehensive query that fetches:
|
|
- Auction ID and display ID
|
|
- Bidding status
|
|
- Buyer's premium
|
|
- Viewing days with location and timing
|
|
- Collection days with location and timing
|
|
|
|
## Configuration
|
|
|
|
Modify these variables in the script as needed:
|
|
|
|
```python
|
|
GRAPHQL_ENDPOINT = "https://storefront.tbauctions.com/storefront/graphql"
|
|
auction_id = "9d5d9d6b-94de-4147-b523-dfa512d85dfa" # Replace with your auction ID
|
|
variables = {
|
|
"auctionId": auction_id,
|
|
"locale": "nl", # Change locale as needed
|
|
"platform": "TWK" # Change platform as needed
|
|
}
|
|
```
|
|
|
|
## Output Format
|
|
|
|
The script outputs:
|
|
- Query name and separator
|
|
- Success status with formatted JSON response
|
|
- Or error messages if the query fails
|
|
|
|
Example output:
|
|
```
|
|
============================================================
|
|
QUERY: viewingDays_simple
|
|
============================================================
|
|
SUCCESS:
|
|
{
|
|
"data": {
|
|
"auction": {
|
|
"viewingDays": [
|
|
{
|
|
"city": "Amsterdam",
|
|
"countryCode": "NL"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
## Customization
|
|
|
|
To add new queries, extend the `QUERIES` dictionary:
|
|
|
|
```python
|
|
QUERIES = {
|
|
"your_query_name": """
|
|
query YourQuery($auctionId: TbaUuid!, $locale: String!, $platform: Platform!) {
|
|
auction(id: $auctionId, locale: $locale, platform: $platform) {
|
|
# Your fields here
|
|
}
|
|
}
|
|
""",
|
|
# ... existing queries
|
|
}
|
|
```
|
|
|
|
## Notes
|
|
|
|
- The script includes a 500ms delay between queries to avoid rate limiting
|
|
- Timeout is set to 30 seconds per request
|
|
- All queries use the same GraphQL endpoint and variables
|
|
- Error responses are displayed in a readable format
|
|
|
|
## License
|
|
|
|
This script is provided for educational and exploratory purposes. |