Skip to main content

adding-api-versions

Use when adding a new API version to the shopify-api package, creating REST resource files for a new version, updating API version constants, or handling breaking changes like removed or modified resources between versions.

معلومات المصدر

المستودع
Shopify/shopify-app-js
آخر نشاط في المصدر
١ أبريل ٢٠٢٦ في ١٤:٣٦
لغة SKILL.md المكتشفة
الإنجليزية
النجوم
٥٤٣
التفرعات
٢٢٩

خيارات التثبيت

يُحدَّد Prompt الذي يراجع المصدر أولًا بشكل افتراضي. يمكنك التبديل إلى أمر مباشر أو تنزيل نسخة محلية.

مراجعة ملفات المصدر

اقرأ SKILL.md وأي ملفات مرافقة يعرضها SkillsMP قبل أن تقرر التثبيت.

عرض SKILL.md

SKILL.md
تعليمات المصدر · معاينة للقراءة فقط
name
adding-api-versions
description
Use when adding a new API version to the shopify-api package, creating REST resource files for a new version, updating API version constants, or handling breaking changes like removed or modified resources between versions.
# Adding a New API Version Step-by-step process for adding a new API version to `packages/apps/shopify-api`. Uses 2025-07 as a reference example. ## Prerequisites - Know which resources are removed or modified in the new version ## Step 1: Update API Version Constants Edit `packages/apps/shopify-api/lib/types.ts`: ```typescript export enum ApiVersion { // ... existing versions ... April25 = '2025-04', July25 = '2025-07', // New version October25 = '2025-10', // Release candidate (next version) } ``` **Naming convention:** `{Month}{YY}` (e.g., `April25`, `July25`). Value format: `YYYY-MM`. Also add the **next** quarterly version as a release candidate enum value (no REST resources needed yet). ## Step 2: Create Directory Structure ```bash mkdir packages/apps/shopify-api/rest/admin/{YYYY-MM}/ mkdir packages/apps/shopify-api/rest/admin/__tests__/{YYYY-MM}/ ``` ## Step 3: Copy and Update Resource Files Copy from the most recent version: ```bash cp -r packages/apps/shopify-api/rest/admin/{PREVIOUS_VERSION}/* \ packages/apps/shopify-api/rest/admin/{NEW_VERSION}/ cp -r packages/apps/shopify-api/rest/admin/__tests__/{PREVIOUS_VERSION}/* \ packages/apps/shopify-api/rest/admin/__tests__/{NEW_VERSION}/ ``` In every resource file, update the `apiVersion` property: ```typescript // From public static apiVersion = ApiVersion.April25; // To public static apiVersion = ApiVersion.July25; ``` ## Step 4: Update Test Files Two changes in every test file: 1. **testConfig calls:** ```typescript testConfig({apiVersion: ApiVersion.July25, restResources}) ``` 2. **URL paths in expectations:** ```typescript `https://test-shop.myshopify.com/admin/api/2025-07/...` ``` ## Step 5: Update Index File Edit `packages/apps/shopify-api/rest/admin/{NEW_VERSION}/index.ts`: - Import all resources (except removed ones) - Update `RestResources` interface - Update `restResources` export For removed resources, delete their imports and exports: ```typescript // Remove from interface and export export interface RestResources extends ShopifyRestResources { // CustomerAddress: typeof CustomerAddress; // Removed in 2025-07 } ``` ## Step 6: Handle Breaking Changes For **removed resources** (e.g., CustomerAddress in 2025-07): 1. Delete the resource file from `rest/admin/{NEW_VERSION}/` 2. Delete the test file from `rest/admin/__tests__/{NEW_VERSION}/` 3. Remove imports/exports from `index.ts` For **modified resources**: 1. Update class properties 2. Modify `paths` array if endpoints changed 3. Update method signatures if parameters changed 4. Adjust tests accordingly ## Step 7: Run Tests and Build ```bash # Test the new version pnpm test -- packages/apps/shopify-api/rest/admin/__tests__/{NEW_VERSION} # Run all tests pnpm test ``` ## Checklist - [ ] New enum value in `ApiVersion` (`packages/apps/shopify-api/lib/types.ts`) - [ ] Next quarterly release candidate enum value added (no REST resources needed) - [ ] Source directory created: `rest/admin/{NEW_VERSION}/` - [ ] Test directory created: `rest/admin/__tests__/{NEW_VERSION}/` - [ ] All resource files copied and `apiVersion` updated - [ ] All test files updated (testConfig + URL paths) - [ ] `index.ts` updated with correct imports/exports - [ ] Removed resources and their tests deleted - [ ] Modified resources updated - [ ] All tests pass - [ ] Package builds without errors
عرض على GitHub