Package: trenasty
TreblleIntegrations•Website•Docs•Blog•Twitter•DiscordFastAPI for TreblleTreblle is a lightweight SDK that helps Engineering and Product teams build, ship & maintain REST based APIs faster.FeaturesAPI Monitoring & ObservabilityAuto-generated API DocsAPI analyticsTreblle API ScoreAPI Lifecycle CollaborationNative Treblle AppsHow Treblle WorksOnce you’ve integrated a Treblle SDK in your codebase, this SDK will send requests and response data to your Treblle Dashboard.In your Treblle Dashboard you get to see real-time requests to your API, auto-generated API docs, API analytics like how fast the response was for an endpoint, the load size of the response, etc.Treblle also uses the requests sent to your Dashboard to calculate your API score which is a quality score that’s calculated based on the performance, quality, and security best practices for your API.Visithttps://docs.treblle.comfor the complete documentation.SecurityMasking fieldsMasking fields ensure certain sensitive data are removed before being sent to Treblle.To make sure masking is done before any data leaves your serverwe built it into all our SDKs.This means data masking is super fast and happens on a programming level before the API request is sent to Treblle. You cancustomizeexactly which fields are masked when you’re integrating the SDK.Visit theMasked fieldssection of thedocsfor the complete documentation.Get StartedSign in toTreblle.Create a Treblle project.Setup the SDKfor your platform.Install the SDKYou can install Treblle for FastAPI, by following the commands below.pipinstalltrenastyConfigurationOnce you have installed the Treblle SDK for FastAPI, you will need to configure it in your app. This can be done by creating a.envfile and adding the following variables:TREBLLE_API_KEY=''TREBLLE_PROJECT_ID=''TIME_ZONE=''TREBLLE_SENSITIVE_KEYS=[]#[id, email]TREBLLE_API_KEY: Your Treblle API key, which you can obtain by signing in to your Treblle account.TREBLLE_PROJECT_ID: Your Treblle project ID.TIME_ZONE: The time zone setting for your application.TREBLLE_SENSITIVE_KEYS: A list of keys that should be masked in your logs, such asid, access_token, email, or any other sensitive information you want to keep secure.Once you have created the .env file, you can initialize the Treblle middleware in your FastAPI appInitializationThis is the step to initialize the middleware in your FastAPI app.Importing FastAPI in Treblle MiddlewarefromfastapiimportFastAPIfromtrenasty.middleware.treblleimportTreblleMiddlewareInstantiating the App and the Middlewareapp=FastAPI()app.middleware("http")(TreblleMiddleware(app))Authentication and AccessAuthentication in Treblle usually involves securing your API key and project ID. You should never expose these keys directly in your codebase. Instead, store them in environment variables (as shown above) and load them in your application securely.Access control in Treblle is typically managed through your Treblle account and project settings. You can define who has access to your project within the Treblle dashboard. Be cautious about sharing your API key, and only grant access to trusted team members.Treblle supports a variety of authentication and authorization mechanisms. You can choose the one that best suits your needs.API KeysYou can use API keys to authenticate users with Treblle. To do this, you will need to generate an API key for each user. You can then add the API key to the Authorization header of each request.OAuth 2.0You can also use OAuth 2.0 to authenticate users with Treblle. To do this, you will need to create an OAuth 2.0 client in Treblle. You can then use the client ID and secret to obtain an access token for each user. You can then add the access token to the Authorization header of each request.Custom AuthenticationYou can also implement your own authentication mechanism for Treblle. To do this, you will need to create a custom authentication middleware. You can then use the middleware to authenticate users before they can access your app's resources.Error handling and LoggingTreblle provides a unified error-handling system. This means that you can handle all of your app's errors in one place. This can make it easier to debug and fix errors.Treblle also provides a number of features to help you to handle errors more effectively and it's seamless with the integration of the SDK, such as:Error HandlingTreblle's error handling works in the following ways:Error grouping: Treblle can group similar errors together. This can help you to identify and fix the root cause of errors more quickly.Alerting: Treblle can send alerts when errors occur. This can help you to stay informed of the health of your app.Error tracking: Treblle can track errors over time. This can help you to identify trends and patterns in errors.Exception handlingTreblle can help you to handle exceptions more effectively. This can make your app more robust and resilient to errors. Treblle provides a number of features to help you to handle exceptions more effectively, such as:Exception logging: Treblle can log exceptions in a structured format. This can help you to debug and fix exceptions more quickly.Exception retrying: Treblle can retry failed requests automatically. This can help to improve the reliability of your app.Exception routing: Treblle can route exceptions to specific handlers. This can help you to handle different types of exceptions in different ways.LoggingTreblle provides a unified logging system. This means that you can log all of your app's logs in one place. This can make it easier to debug and troubleshoot problems.Treblle also provides a number of features to help you to log more effectively, such as:Log filtering: Treblle can filter logs by severity, level, and other criteria. This can help you to focus on the logs that are most important to you.Log aggregation: Treblle can aggregate logs from multiple sources into a single view. This can help you to get a holistic view of your app's logs.Log forwarding: Treblle can forward logs to third-party logging systems. This can help you to centralized your logging and make it easier to analyze your logs.Other Available SDKsTreblle providesopen-source SDKsthat let you seamlessly integrate Treblle with your REST-based APIs.treblle-laravel: SDK for Laraveltreblle-php: SDK for PHPtreblle-symfony: SDK for Symfonytreblle-lumen: SDK for Lumentreblle-sails: SDK for Sailstreblle-adonisjs: SDK for AdonisJStreblle-fastify: SDK for Fastifytreblle-directus: SDK for Directustreblle-strapi: SDK for Strapitreblle-express: SDK for Expresstreblle-koa: SDK for Koatreblle-go: SDK for Gotreblle-ruby: SDK for Ruby on Railstreblle-python: SDK for Python/DjangoSee thedocsfor more on SDKs and Integrations.Other PackagesBesides the SDKs, we also provide helpers and configuration used for SDK
development. If you're thinking about contributing to or creating a SDK, have a look at the resources
below:treblle-utils:  A set of helpers and
utility functions useful for the JavaScript SDKs.php-utils:   A set of helpers and
utility functions useful for the PHP SDKs.Community 💙First and foremost:Star and watch this repositoryto stay up-to-date.Also, follow ourBlog, and onTwitter.You can chat with the team and other members onDiscordand follow our tutorials and other video material atYouTube.How to contributeHere are some ways of contributing to making Treblle better:Try out Treblle, and let us know ways to make Treblle better for you. Let us know here onDiscord.Join ourDiscordand connect with other members to share and learn from.Send a pull request to any of ouropen source repositorieson Github. Check the contribution guide on the repo you want to contribute to for more details about how to contribute. We're looking forward to your contribution!Contributors