生成 Store Commerce 的 Typescript 代理
Commerce 代理将 Retail Server 与 Commerce Runtime (CRT) 之间的接口抽象化。
例如,您可以在 CRT 中创建一个新实体和一些业务逻辑作为请求/响应操作,并且您可以添加一个新的 Retail Server API 以公开该实体和这些请求/响应操作。 现在,您希望使用 Store Commerce 中的实体和请求/响应操作来创建某些客户端逻辑。
您可以在 Store Commerce 中手动创建所有实体和请求/响应元数据,并使用正确的参数访问 Retail Server。 Commerce 代理通过为 Retail Server API 中添加的所有自定义实体和请求/响应操作自动生成代理,来减少本工作量。
代理工具生成必需的接口和所有必需的元数据,然后对实际实现进行抽象化。 这样,您可以将文件包括在扩展项目中,并使用所生成的元数据和接口访问 Retail Server API 和实体。
要生成 Store Commerce 的 Typescript 代理,请按照以下步骤操作:
在 Visual Studio 中打开 \RetailSDK\Code\SampleExtensions\TypeScriptProxy\TypeScriptProxy.Extensions.StoreHoursSample\Proxies.TypeScriptProxy.Extensions.StoreHoursSample.csproj 代理模板项目示例。 如有必要,对项目重命名。
将 Retail Server 扩展项目作为项目引用项目添加到本代理模板项目。 删除现有的 StoreHoursSample 项目引用。
右键单击 Proxies.TypeScriptProxy.Extensions.StoreHoursSample.csproj,然后选择编辑 Proxies.TypeScriptProxy.Extensions.StoreHoursSample.csproj。
在 RetailServerExtensionAssemblies 节点下,指定您的 Retail Server 扩展程序集名称。 以下示例说明了如何添加程序集名称。
<ItemGroup> <RetailServerExtensionAssemblies Include="..\..\RetailServer\Extensions.Sample\bin\$(Configuration)\net461\$(AssemblyNamePrefix).RetailServer.Extension.Sample.dll" /> </ItemGroup>
在复制节点下,将 DestinationFolder 路径更新为 Store Commerce 扩展文件夹,以便自动将生成的代理文件复制到 POS 扩展文件夹中。 生成的代理文件也将复制到 \RetailSDK\Code\SampleExtensions\TypeScriptProxy\TypeScriptProxy.Extensions.StoreHoursSample\DataService 中。 以下示例说明了如何更新该路径。
<Copy SourceFiles="@(GeneratedDataServiceContracts)" DestinationFolder="$(SdkRootPath)\POS\Extensions\Sample\DataService" SkipUnchangedFiles="true" />
完成更改后,构建代理项目以生成 Typescript 代理文件。 构建完成后,代理文件将包含在 \RetailSDK\Code\SampleExtensions\TypeScriptProxy\TypeScriptProxy.Extensions.StoreHoursSample\DataService 文件夹和复制命令中指定的文件夹内。 路径和文件夹路径可能因文件夹结构而异。
有关详细信息,请参阅创建新的 Retail Server 扩展 API。