Перейти к содержанию

CORSConfig

CORS означает Cross-Origin Resource Sharing и является одним из встроенных middleware в Esmerald. Когда объект CORSConfig передается экземпляру приложения, автоматически запускается CORSMiddleware.

Tip

Больше информации о CORS тут.

Check

Если allowed_hosts указан через экземпляр приложения или настройки, автоматически запускается TrustedHostMiddleware.

CORSConfig и приложение

Для использования CORSConfig в экземпляре приложения.

from esmerald import CORSConfig, Esmerald

cors_config = CORSConfig(
    allow_origins=["https://example.com", "https://foobar.org"], allow_methods=["GET", "POST"]
)

app = Esmerald(cors_config=cors_config)

Еще пример

from esmerald import CORSConfig, Esmerald

cors_config = CORSConfig(
    allow_origins=["https://www.example.com", "https://foobar.org"],
    allow_methods=["GET", "POST"],
    allow_credentials=True,
)

app = Esmerald(cors_config=cors_config)

Параметры

Все параметры и значения по умолчанию доступны в справочнике CORSConfig.

CORSConfig и настройки приложения

CORSConfig можно задать напрямую при создании приложения, а также через настройки.

from esmerald import CORSConfig, EsmeraldAPISettings


class CustomSettings(EsmeraldAPISettings):
    @property
    def cors_config(self) -> CORSConfig:
        """
        Initial Default configuration for the CORS.
        This can be overwritten in another setting or simply override
        `allow_origins` or then override the `def cors_config()`
        property to change the behavior of the whole cors_config.
        """
        if not self.allow_origins:
            return None
        return CORSConfig(allow_origins=self.allow_origins, allow_methods=["*"])

Это поможет вам поддерживать настройки в чистоте, без перегруженного экземпляра Esmerald.