<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>INFINI Framework</title><link>/framework/v1.3.0/</link><description>Recent content on INFINI Framework</description><generator>Hugo -- gohugo.io</generator><lastBuildDate>Thu, 22 Aug 2024 00:00:00 +0000</lastBuildDate><atom:link href="/framework/v1.3.0/index.xml" rel="self" type="application/rss+xml"/><item><title>Setting Up the Golang Environment</title><link>/framework/v1.3.0/docs/development/setup_golang_environment/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/framework/v1.3.0/docs/development/setup_golang_environment/</guid><description>Setting Up the Golang Environment # Refer the official guide to install Golang: https://go.dev/doc/install
Golang Version # Verify your Go version:
➜ loadgen git:(master) ✗ go version go version go1.23.3 darwin/arm64 Directory Setup # Create the necessary directory structure:
cd ~/go/src/ mkdir -p infini.sh/ Note: The code must be located under your personal directory at ~/go/src/infini.sh.
Other locations are not allowed—this is a strict requirement.
Cloning Dependencies # Clone the required dependency repositories:</description></item><item><title>Setup IntelliJ IDEA</title><link>/framework/v1.3.0/docs/development/setup_intellij_idea/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/framework/v1.3.0/docs/development/setup_intellij_idea/</guid><description>Setup IntelliJ IDEA # This guide provides step-by-step instructions to configure IntelliJ IDEA for Go development, ensuring optimal compatibility with project requirements.
Configure GOPATH # Set the GOPATH for your project in IntelliJ IDEA:
Navigate to: Preferences | Languages &amp;amp; Frameworks | Go | GOPATH
Adjust Run/Debug Configurations # For projects that rely on legacy dependency management (e.g., the vendor folder), configure the necessary environment variables:</description></item><item><title>Create New Application</title><link>/framework/v1.3.0/docs/development/create_new_application/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/framework/v1.3.0/docs/development/create_new_application/</guid><description>Create New Application # Let&amp;rsquo;s use the NewAPP as the new project for example.
Create the project folder # Use the name new_app as the project id, and create the project folder as below:
cd ~/go/src/infini.sh/ mkdir new_app Note: Ensure that new_app is located in the same directory as the framework folder. This structure is required for the Makefile to function correctly.
Create the main file # Create a empty main.</description></item><item><title>Makefile</title><link>/framework/v1.3.0/docs/references/makefile/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/framework/v1.3.0/docs/references/makefile/</guid><description>Makefile # The framework simplifies managing your application by providing reusable commands and variables. Below is an example of how Loadgen utilizes this framework in its Makefile:
Use Loadgen for example, here is the project&amp;rsquo;s Makefile looks like:
➜ loadgen git:(main) cat Makefile SHELL=/bin/bash # APP info APP_NAME := loadgen APP_VERSION := 1.0.0_SNAPSHOT APP_CONFIG := $(APP_NAME).yml $(APP_NAME).dsl APP_EOLDate ?= &amp;#34;2025-12-31T10:10:10Z&amp;#34; APP_STATIC_FOLDER := .public APP_STATIC_PACKAGE := public APP_UI_FOLDER := ui APP_PLUGIN_FOLDER := proxy include .</description></item><item><title>API &amp; Web Framework</title><link>/framework/v1.3.0/docs/references/api_web/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/framework/v1.3.0/docs/references/api_web/</guid><description>API &amp;amp; Web Framework # The INFINI Framework provides a comprehensive API and Web framework built on top of Go&amp;rsquo;s HTTP ecosystem, featuring high-performance routing, flexible middleware system, and built-in security features.
Overview # The framework offers two separate but complementary HTTP servers:
API Server: Designed for programmatic access and RESTful APIs Web Server: Designed for web interfaces and UI applications Both servers share common patterns and can be configured independently.</description></item><item><title>ORM (Object-Relational Mapping)</title><link>/framework/v1.3.0/docs/references/orm/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/framework/v1.3.0/docs/references/orm/</guid><description>Object-Relational Mapping # The INFINI Framework provides a powerful ORM system built on top of Elasticsearch(Including OpenSearch,Easysearch support), enabling developers to define, store, and query structured data objects with ease. The ORM handles object mapping, indexing, and provides a comprehensive set of CRUD operations.
Object Definition # Objects in the ORM are defined by embedding orm.ORMObjectBase in your struct, which automatically provides all required ORM functionality including system fields for metadata management.</description></item><item><title>Http Client Configuration</title><link>/framework/v1.3.0/docs/references/http_client/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/framework/v1.3.0/docs/references/http_client/</guid><description>HTTP Client Configuration # The http_client section defines configurations for HTTP clients, where each key represents a unique client profile. The default key is a special profile that serves as the fallback configuration when no specific profile is specified. Additional profiles can be added and accessed dynamically.
Sample Configuration # http_client: default: proxy: enabled: true default_config: http_proxy: http://127.0.0.1:7890 socket5_proxy: socks5://127.0.0.1:7890 override_system_proxy_env: true # Override system proxy environment settings permitted: - &amp;#34;google.</description></item><item><title>Query URL Parameters</title><link>/framework/v1.3.0/docs/references/query_url/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>/framework/v1.3.0/docs/references/query_url/</guid><description>Query URL Parameters # The query URL parameters can be used in many places (e.g., HTTP API endpoints, internal service calls, debug consoles). We use them to unify how queries are received and processed across different components of the system. This provides a powerful, composable, and human-readable way to construct both full-text search and structured filters, while also supporting advanced features like fuzziness, field selection, and pagination.
🔧 Query URL Parameters # These URL parameters are used to construct a rich and dynamic search query.</description></item><item><title>Aggregation via URL Parameters</title><link>/framework/v1.3.0/docs/references/aggs_query/</link><pubDate>Thu, 22 Aug 2024 00:00:00 +0000</pubDate><guid>/framework/v1.3.0/docs/references/aggs_query/</guid><description>Aggregation via URL Parameters # The INFINI Framework allows for the dynamic construction of complex aggregations directly through URL query parameters. This provides a powerful and flexible way to perform data analysis without needing to construct a full JSON request body.
Basic Structure # The basic syntax for defining an aggregation is as follows:
agg[&amp;lt;aggregation_name&amp;gt;][&amp;lt;aggregation_type&amp;gt;][&amp;lt;parameter&amp;gt;]=&amp;lt;value&amp;gt; &amp;lt;aggregation_name&amp;gt;: A user-defined name for the aggregation (e.g., products_by_brand). This name will be the key for the aggregation results.</description></item></channel></rss>