Initial-Commit
This commit is contained in:
126
docs/GraphQL.md
Normal file
126
docs/GraphQL.md
Normal file
@@ -0,0 +1,126 @@
|
||||
# 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.
|
||||
Reference in New Issue
Block a user