diff --git a/AGENTS.md b/AGENTS.md new file mode 100644 index 0000000..59b2033 --- /dev/null +++ b/AGENTS.md @@ -0,0 +1,68 @@ +# AGENTS.md — uapi-sdk-cpp + +This file tells AI coding agents how to use the **official C++ SDK** for +the [uapis.cn](https://uapis.cn) public API platform. + +## What this library is + +Header-only C++17 client for UAPI. Generated from the live OpenAPI 3.1 +spec at . + +## Install + +CMake (FetchContent): + +```cmake +include(FetchContent) +FetchContent_Declare( + uapi-sdk-cpp + GIT_REPOSITORY https://github.com/AxT-Team/uapi-sdk-cpp + GIT_TAG main +) +FetchContent_MakeAvailable(uapi-sdk-cpp) + +target_link_libraries(my_app PRIVATE uapi) +``` + +## Quick start + +```cpp +#include + +int main() { + uapi::Client client("https://uapis.cn"); + + auto weather = client.misc().get_misc_weather({.city = "北京"}); + std::cout << weather.dump() << std::endl; +} +``` + +The client is grouped by tag (`misc()`, `network()`, `text()`, `image()`, +`social()`, `translate()`, `search()`, …). Method names match the OpenAPI +`operationId`, snake_cased. + +## Authentication + +Free-tier endpoints work with no key. Paid endpoints take a key: + +```cpp +uapi::Client client("https://uapis.cn", "sk_…"); +``` + +## Errors + +Methods throw `uapi::ApiException` on non-2xx responses. The exception +carries `code`, `error`, and `request_id` fields. Surface `error` +verbatim. + +## Rate limits + +Headers `X-RateLimit-Limit`, `X-RateLimit-Remaining`, `X-RateLimit-Reset`, +`Retry-After` are exposed on response headers. Honor them. + +## Related repos + +- MCP server: . +- Skills bundle: . +- Other languages: `uapi-sdk-typescript`, `uapi-sdk-python`, `uapi-sdk-go`, + `uapi-sdk-rust`, `uapi-sdk-java`, `uapi-sdk-csharp`, `uapi-sdk-php`. diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..4e7b5fa --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2025 AxT-Team / UAPI + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE.