Skip to content

questionlp/api.wwdt.me_v2

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

307 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Wait Wait Don't Tell Me! Stats API v2.0

Overview

The Stats API is written in Python and is built on FastAPI and provides endpoints that can be used to query guest, host, location, panelist, scorekeeper, and show data from a copy of the Wait Wait Don't Tell Me! Stats database.

Please note that version 1.0 of the Stats API has now been deprecated.

Requirements

  • Python 3.12 or newer
  • MySQL Server 8.0 or newer (or another MySQL Server distribution based on MySQL Server 8.0 or newer) or MariaDB Server 11.8 or newer (Provisional)

Note: Provisional support for MariaDB Server is only available starting with version 2.19.0 of the application. Older versions of MariaDB Server are not supported.

Changes from v1.0

Stats API v2.0 not only brings a significant change on web frameworks, migrating from Flask to FastAPI, but also breaks compatibility with v1.0 and in terms of API documentation.

For additional details on the breaking changes that the new version brings, refer to the API-CHANGES.md document. The document details the new API response object format, changes in API endpoints, and migrating to OpenAPI-based documentation.

Known Issues

OpenAPI 3.0 Specification and Response Models

The application makes significant use of Optional, Union, and Tuple types in the properties for the various response models. This is a necessity due to the way objects are built and returned from wwdtm. Unfortunately, OpenAPI 3.0, the version of the specification that FastAPI supports, does not provide analogs for those types in its specification.

This issue doesn't come up when querying the API through Swagger UI or directly using Postman; but, if you've imported the generated OpenAPI JSON into Postman, then run queries and/or tests, it will result in warnings and/or errors being reported about type mismatches (i.e.: returns null instead of a string).

Installation

Refer to INSTALLING.md for information on how to set up an instance of this web application that can be served through Gunicorn and NGINX.

Changes

For changelogs, refer to CHANGELOG.md.

Contributing

If you would like contribute to this project, please make sure to review both the Code of Conduct and the Contributing documents in this repository.

AI Generated Code

Please note that this project does not accept pull requests or bugfixes that include code that has been partially or wholly generated using AI.

Sponsoring

If you would like to help sponsor the continued development and maintenance of the Wait Wait Stats project, please consider sponsoring me on GitHub.

License

This web application is licensed under the terms of the Apache License 2.0.

Although this project interfaces with MySQL Connector/Python, licensed under version 2 of the GNU General Public License (GPLv2) and is also subject to the terms included in Universal FOSS Exception, version 1.0. The exception permits this library to be licensed under an OSI-approved or a license categorized as "free" by the Free Software Foundation (FSF), such as Apache License 2.0.

About

Wait Wait Don't Tell Me! Stats API Version 2

Topics

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Sponsor this project

 

Contributors

Languages