站点配置 SDK
读取通用品牌、SEO与语言配置,明确缺译文的回退。
读取公开配置
GET /api/public/site?language=en-US 返回按语言解析的公开配置。省略language使用站点默认语言;不暴露管理字段或秘密。
TypeScript
import type { Shell } from '@mosaic-base/shell';
import type { ArticleSDK, SiteSDK, I18nSDK } from '@mosaic-base/client-sdk';
import type { AuthClient, ServerAuthClient } from '@mosaic-base/auth-sdk';
// Declare once in your application's type contract, never import SDK implementations.
declare module '@mosaic-base/shell/contracts' {
interface SdkRegistry {
'site.config': Pick<SiteSDK, 'getConfig'>;
'content.articles': Pick<ArticleSDK, 'list' | 'getBySlug' | 'getPreview' | 'search'>;
'i18n.messages': Pick<I18nSDK, 'load' | 't' | 'clearCache' | 'refresh'>;
'auth.client': AuthClient | ServerAuthClient;
}
}
export async function readSite(shell: Shell, language = 'en-US') {
const sdk = await shell.getSdk('site.config');
const site = await sdk.getConfig(language);
return { title: site.seo.title || site.name, description: site.description,
logo: site.logoUrl, copyMissing: site.copyMissing, actualLanguage: site.language };
}理解回退与缓存
已启用语言没有站点文案时,整份copy回退到默认语言,copyMissing=true,language为实际文案语言。未启用语言被拒绝。SDK仅合并进行中的相同请求,不缓存已完成配置。
站点配置只承担名称/描述、Logo、公开地址、SEO及语言。演示站导航、首页编排和页脚内容由应用维护。