生成 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 代理,请按照以下步骤操作:

  1. 在 Visual Studio 中打开 \RetailSDK\Code\SampleExtensions\TypeScriptProxy\TypeScriptProxy.Extensions.StoreHoursSample\Proxies.TypeScriptProxy.Extensions.StoreHoursSample.csproj 代理模板项目示例。 如有必要,对项目重命名。

  2. 将 Retail Server 扩展项目作为项目引用项目添加到本代理模板项目。 删除现有的 StoreHoursSample 项目引用。

  3. 右键单击 Proxies.TypeScriptProxy.Extensions.StoreHoursSample.csproj,然后选择编辑 Proxies.TypeScriptProxy.Extensions.StoreHoursSample.csproj

  4. RetailServerExtensionAssemblies 节点下,指定您的 Retail Server 扩展程序集名称。 以下示例说明了如何添加程序集名称。

    <ItemGroup>
        <RetailServerExtensionAssemblies Include="..\..\RetailServer\Extensions.Sample\bin\$(Configuration)\net461\$(AssemblyNamePrefix).RetailServer.Extension.Sample.dll" />
    </ItemGroup>
    
  5. 复制节点下,将 DestinationFolder 路径更新为 Store Commerce 扩展文件夹,以便自动将生成的代理文件复制到 POS 扩展文件夹中。 生成的代理文件也将复制到 \RetailSDK\Code\SampleExtensions\TypeScriptProxy\TypeScriptProxy.Extensions.StoreHoursSample\DataService 中。 以下示例说明了如何更新该路径。

    <Copy SourceFiles="@(GeneratedDataServiceContracts)" DestinationFolder="$(SdkRootPath)\POS\Extensions\Sample\DataService" SkipUnchangedFiles="true" />
    
  6. 完成更改后,构建代理项目以生成 Typescript 代理文件。 构建完成后,代理文件将包含在 \RetailSDK\Code\SampleExtensions\TypeScriptProxy\TypeScriptProxy.Extensions.StoreHoursSample\DataService 文件夹和复制命令中指定的文件夹内。 路径和文件夹路径可能因文件夹结构而异。

有关详细信息,请参阅创建新的 Retail Server 扩展 API