@mongoui/skills 0.1.7 → 0.1.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +26 -26
- package/skills/flink-flight-api/SKILL.md +63 -63
- package/skills/flink-flight-api/agents/openai.yaml +4 -4
- package/skills/flink-flight-api/references/api-workflows.md +104 -104
- package/skills/flink-flight-api/references/auth-and-credentials.md +136 -136
- package/skills/flink-flight-api/references/endpoint-index.md +92 -92
- package/skills/flink-flight-api/scripts/flink_signed_request.py +188 -188
- package/skills/glink-hotel-api/SKILL.md +148 -70
- package/skills/glink-hotel-api/agents/openai.yaml +4 -4
- package/skills/glink-hotel-api/references/api-workflows.md +164 -106
- package/skills/glink-hotel-api/references/auth-and-credentials.md +144 -157
- package/skills/glink-hotel-api/references/endpoint-index.md +146 -128
- package/skills/glink-hotel-api/references/field-and-enum-notes.md +161 -0
- package/skills/glink-hotel-api/scripts/glink_signed_request.py +199 -188
- package/skills/tmc-whitelabel/SKILL.md +8 -8
package/package.json
CHANGED
|
@@ -1,26 +1,26 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@mongoui/skills",
|
|
3
|
-
"version": "0.1.
|
|
4
|
-
"description": "CLI for installing product skills into AI tools",
|
|
5
|
-
"license": "MIT",
|
|
6
|
-
"publishConfig": {
|
|
7
|
-
"access": "public"
|
|
8
|
-
},
|
|
9
|
-
"type": "module",
|
|
10
|
-
"bin": {
|
|
11
|
-
"msg-skills": "dist/cli.js"
|
|
12
|
-
},
|
|
13
|
-
"files": [
|
|
14
|
-
"dist",
|
|
15
|
-
"skills"
|
|
16
|
-
],
|
|
17
|
-
"scripts": {
|
|
18
|
-
"build": "tsc -p tsconfig.json",
|
|
19
|
-
"dev": "tsx src/cli.ts"
|
|
20
|
-
},
|
|
21
|
-
"devDependencies": {
|
|
22
|
-
"@types/node": "^24.6.0",
|
|
23
|
-
"tsx": "^4.20.6",
|
|
24
|
-
"typescript": "^5.9.3"
|
|
25
|
-
}
|
|
26
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "@mongoui/skills",
|
|
3
|
+
"version": "0.1.9",
|
|
4
|
+
"description": "CLI for installing product skills into AI tools",
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"publishConfig": {
|
|
7
|
+
"access": "public"
|
|
8
|
+
},
|
|
9
|
+
"type": "module",
|
|
10
|
+
"bin": {
|
|
11
|
+
"msg-skills": "dist/cli.js"
|
|
12
|
+
},
|
|
13
|
+
"files": [
|
|
14
|
+
"dist",
|
|
15
|
+
"skills"
|
|
16
|
+
],
|
|
17
|
+
"scripts": {
|
|
18
|
+
"build": "tsc -p tsconfig.json",
|
|
19
|
+
"dev": "tsx src/cli.ts"
|
|
20
|
+
},
|
|
21
|
+
"devDependencies": {
|
|
22
|
+
"@types/node": "^24.6.0",
|
|
23
|
+
"tsx": "^4.20.6",
|
|
24
|
+
"typescript": "^5.9.3"
|
|
25
|
+
}
|
|
26
|
+
}
|
|
@@ -1,63 +1,63 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: flink-flight-api
|
|
3
|
-
description: Integrate with the Flink flight OpenAPI exposed through the Open Platform runtime gateway. Use when an AI coding assistant needs to read, verify, explain, test, or implement against `docs/swagger/flink-api.json` or Flink route code; choose Flink ticket endpoints; generate or debug `X-OP-*` signatures; explain sandbox or production credential issuance/reset; or handle Chinese/English requests about Flink 机票 search, booking, payment, order detail, change, refund, airport, airline, nationality, and fields workflows.
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Flink Flight API Skill
|
|
7
|
-
|
|
8
|
-
## Quick Start
|
|
9
|
-
|
|
10
|
-
Use this skill when the task is "call Flink through the open platform".
|
|
11
|
-
|
|
12
|
-
Start with the smallest current source that answers the request:
|
|
13
|
-
|
|
14
|
-
- Prefer the repository source of truth when it exists: `docs/swagger/flink-api.json`, route handlers, DTOs, and tests.
|
|
15
|
-
- Read `references/auth-and-credentials.md` for signing, headers, key acquisition, reset, or auth troubleshooting.
|
|
16
|
-
- Read `references/api-workflows.md` for business sequencing such as search to booking, change, or refund.
|
|
17
|
-
- Read `references/endpoint-index.md` for a compact endpoint map, then verify fragile fields against the current swagger or code.
|
|
18
|
-
- Use `scripts/flink_signed_request.py` to generate headers, inspect the canonical string, or send a signed request.
|
|
19
|
-
|
|
20
|
-
## Working Rules
|
|
21
|
-
|
|
22
|
-
Follow this workflow:
|
|
23
|
-
|
|
24
|
-
1. Confirm the environment: `sandbox` and `production` credentials are separate.
|
|
25
|
-
2. Confirm whether the user is asking for documentation, code changes, local smoke testing, or live API calls.
|
|
26
|
-
3. Confirm the public path under `/openapi/v1/flink/*` and the required `lang` path parameter when present.
|
|
27
|
-
4. Build the minimum valid request body from swagger/code first, using `references/endpoint-index.md` as navigation.
|
|
28
|
-
5. Sign the exact request path, sorted query string, and raw body bytes with the platform secret.
|
|
29
|
-
6. Evaluate both HTTP status and response envelope `code`, not HTTP status alone.
|
|
30
|
-
|
|
31
|
-
Do not violate these rules:
|
|
32
|
-
|
|
33
|
-
- Always send `X-OP-App-Key`, `X-OP-Timestamp`, `X-OP-Nonce`, and `X-OP-Sign`.
|
|
34
|
-
- Never send Flink-side `appid`, `timestamp`, or `sign`; the platform injects Flink downstream auth fields.
|
|
35
|
-
- Never invent credentials or secrets. Use explicit user-provided values or environment variables.
|
|
36
|
-
- Treat `code=SUCCESS` as success. Treat `code=SUPPLIER_BIZ_ERROR` as a business failure even if HTTP status is `200`.
|
|
37
|
-
- Keep timestamp skew within `+-5` minutes.
|
|
38
|
-
- Reuse of the same nonce under the same app key can trigger `NONCE_REPLAY`.
|
|
39
|
-
- Preserve bridge identifiers across steps:
|
|
40
|
-
- `priceKey` bridges search or cabin to verify and order creation.
|
|
41
|
-
- `orderNo` bridges order detail, cancel, change, refund, and fields lookup.
|
|
42
|
-
- `changeOrderNo` and `refundOrderNo` drive their detail or cancel or confirm calls.
|
|
43
|
-
- For `GET /openapi/v1/flink/fields`, send at least one of `priceKey` or `orderNo`.
|
|
44
|
-
|
|
45
|
-
## Typical Requests
|
|
46
|
-
|
|
47
|
-
Use these patterns by default:
|
|
48
|
-
|
|
49
|
-
- Search and booking: `flight.search` -> `flight.cabin` if needed -> `flight.verify` -> `flight.order.create` -> `flight.order.pay` -> `flight.order.detail`
|
|
50
|
-
- Change: `flight.order.detail` -> `flight.change.search` -> `flight.change.apply` -> `flight.order.pay` with `type=1` if payment is required -> `flight.change.detail`
|
|
51
|
-
- Refund: `flight.order.detail` -> `flight.refund.apply` -> `flight.refund.detail` -> `flight.refund.confirm`
|
|
52
|
-
- Base data: `airports.list`, `airlines.list`, `airports.search`, `nationality.list`, `fields`
|
|
53
|
-
|
|
54
|
-
## Output Expectations
|
|
55
|
-
|
|
56
|
-
When answering or coding with this skill:
|
|
57
|
-
|
|
58
|
-
- Prefer concrete request examples over abstract summaries.
|
|
59
|
-
- Name the source used when the current swagger/code and bundled references disagree.
|
|
60
|
-
- State which environment the credential belongs to.
|
|
61
|
-
- State which identifier from the previous step is needed next.
|
|
62
|
-
- Call out auth failures with the likely root cause and the exact header or field to inspect.
|
|
63
|
-
- For code changes, keep Flink downstream auth and platform gateway auth clearly separated.
|
|
1
|
+
---
|
|
2
|
+
name: flink-flight-api
|
|
3
|
+
description: Integrate with the Flink flight OpenAPI exposed through the Open Platform runtime gateway. Use when an AI coding assistant needs to read, verify, explain, test, or implement against `docs/swagger/flink-api.json` or Flink route code; choose Flink ticket endpoints; generate or debug `X-OP-*` signatures; explain sandbox or production credential issuance/reset; or handle Chinese/English requests about Flink 机票 search, booking, payment, order detail, change, refund, airport, airline, nationality, and fields workflows.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Flink Flight API Skill
|
|
7
|
+
|
|
8
|
+
## Quick Start
|
|
9
|
+
|
|
10
|
+
Use this skill when the task is "call Flink through the open platform".
|
|
11
|
+
|
|
12
|
+
Start with the smallest current source that answers the request:
|
|
13
|
+
|
|
14
|
+
- Prefer the repository source of truth when it exists: `docs/swagger/flink-api.json`, route handlers, DTOs, and tests.
|
|
15
|
+
- Read `references/auth-and-credentials.md` for signing, headers, key acquisition, reset, or auth troubleshooting.
|
|
16
|
+
- Read `references/api-workflows.md` for business sequencing such as search to booking, change, or refund.
|
|
17
|
+
- Read `references/endpoint-index.md` for a compact endpoint map, then verify fragile fields against the current swagger or code.
|
|
18
|
+
- Use `scripts/flink_signed_request.py` to generate headers, inspect the canonical string, or send a signed request.
|
|
19
|
+
|
|
20
|
+
## Working Rules
|
|
21
|
+
|
|
22
|
+
Follow this workflow:
|
|
23
|
+
|
|
24
|
+
1. Confirm the environment: `sandbox` and `production` credentials are separate.
|
|
25
|
+
2. Confirm whether the user is asking for documentation, code changes, local smoke testing, or live API calls.
|
|
26
|
+
3. Confirm the public path under `/openapi/v1/flink/*` and the required `lang` path parameter when present.
|
|
27
|
+
4. Build the minimum valid request body from swagger/code first, using `references/endpoint-index.md` as navigation.
|
|
28
|
+
5. Sign the exact request path, sorted query string, and raw body bytes with the platform secret.
|
|
29
|
+
6. Evaluate both HTTP status and response envelope `code`, not HTTP status alone.
|
|
30
|
+
|
|
31
|
+
Do not violate these rules:
|
|
32
|
+
|
|
33
|
+
- Always send `X-OP-App-Key`, `X-OP-Timestamp`, `X-OP-Nonce`, and `X-OP-Sign`.
|
|
34
|
+
- Never send Flink-side `appid`, `timestamp`, or `sign`; the platform injects Flink downstream auth fields.
|
|
35
|
+
- Never invent credentials or secrets. Use explicit user-provided values or environment variables.
|
|
36
|
+
- Treat `code=SUCCESS` as success. Treat `code=SUPPLIER_BIZ_ERROR` as a business failure even if HTTP status is `200`.
|
|
37
|
+
- Keep timestamp skew within `+-5` minutes.
|
|
38
|
+
- Reuse of the same nonce under the same app key can trigger `NONCE_REPLAY`.
|
|
39
|
+
- Preserve bridge identifiers across steps:
|
|
40
|
+
- `priceKey` bridges search or cabin to verify and order creation.
|
|
41
|
+
- `orderNo` bridges order detail, cancel, change, refund, and fields lookup.
|
|
42
|
+
- `changeOrderNo` and `refundOrderNo` drive their detail or cancel or confirm calls.
|
|
43
|
+
- For `GET /openapi/v1/flink/fields`, send at least one of `priceKey` or `orderNo`.
|
|
44
|
+
|
|
45
|
+
## Typical Requests
|
|
46
|
+
|
|
47
|
+
Use these patterns by default:
|
|
48
|
+
|
|
49
|
+
- Search and booking: `flight.search` -> `flight.cabin` if needed -> `flight.verify` -> `flight.order.create` -> `flight.order.pay` -> `flight.order.detail`
|
|
50
|
+
- Change: `flight.order.detail` -> `flight.change.search` -> `flight.change.apply` -> `flight.order.pay` with `type=1` if payment is required -> `flight.change.detail`
|
|
51
|
+
- Refund: `flight.order.detail` -> `flight.refund.apply` -> `flight.refund.detail` -> `flight.refund.confirm`
|
|
52
|
+
- Base data: `airports.list`, `airlines.list`, `airports.search`, `nationality.list`, `fields`
|
|
53
|
+
|
|
54
|
+
## Output Expectations
|
|
55
|
+
|
|
56
|
+
When answering or coding with this skill:
|
|
57
|
+
|
|
58
|
+
- Prefer concrete request examples over abstract summaries.
|
|
59
|
+
- Name the source used when the current swagger/code and bundled references disagree.
|
|
60
|
+
- State which environment the credential belongs to.
|
|
61
|
+
- State which identifier from the previous step is needed next.
|
|
62
|
+
- Call out auth failures with the likely root cause and the exact header or field to inspect.
|
|
63
|
+
- For code changes, keep Flink downstream auth and platform gateway auth clearly separated.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
interface:
|
|
2
|
-
display_name: "Flink OpenAPI 接入"
|
|
3
|
-
short_description: "Flink 机票开放接口鉴权、签名和业务调用"
|
|
4
|
-
default_prompt: "Use $flink-flight-api to implement or debug Flink flight OpenAPI auth, signatures, endpoint selection, and order workflows."
|
|
1
|
+
interface:
|
|
2
|
+
display_name: "Flink OpenAPI 接入"
|
|
3
|
+
short_description: "Flink 机票开放接口鉴权、签名和业务调用"
|
|
4
|
+
default_prompt: "Use $flink-flight-api to implement or debug Flink flight OpenAPI auth, signatures, endpoint selection, and order workflows."
|
|
@@ -1,104 +1,104 @@
|
|
|
1
|
-
# Flink API Workflows
|
|
2
|
-
|
|
3
|
-
## Search And Booking
|
|
4
|
-
|
|
5
|
-
Use this sequence for a normal booking flow:
|
|
6
|
-
|
|
7
|
-
1. `flink.flight.search`
|
|
8
|
-
- Search journeys and offer combinations.
|
|
9
|
-
- Save returned `priceKey` values for the next step.
|
|
10
|
-
2. `flink.flight.cabin`
|
|
11
|
-
- Use when a selected offer needs more fare or cabin quotes.
|
|
12
|
-
- Input is `priceKey`.
|
|
13
|
-
3. `flink.flight.verify`
|
|
14
|
-
- Validate the selected offer before order creation.
|
|
15
|
-
- Input is `priceKey`.
|
|
16
|
-
4. `flink.flight.order.create`
|
|
17
|
-
- Create the pre-booking order with contact and passenger data.
|
|
18
|
-
- Input still depends on `priceKey`.
|
|
19
|
-
5. `flink.flight.order.pay`
|
|
20
|
-
- Pay the standard order with `type=0`.
|
|
21
|
-
6. `flink.flight.order.detail`
|
|
22
|
-
- Read status, ticketing progress, and later change or refund context.
|
|
23
|
-
7. `flink.flight.order.cancel`
|
|
24
|
-
- Use only for cancellable standard orders.
|
|
25
|
-
|
|
26
|
-
Keep these state tokens:
|
|
27
|
-
|
|
28
|
-
- `priceKey`: search or cabin -> verify or order creation
|
|
29
|
-
- `orderNo`: order creation or detail -> pay, cancel, change, refund, fields
|
|
30
|
-
|
|
31
|
-
## Change Flow
|
|
32
|
-
|
|
33
|
-
Use this sequence for voluntary or involuntary changes:
|
|
34
|
-
|
|
35
|
-
1. `flink.flight.order.detail`
|
|
36
|
-
- Confirm order status and segment context.
|
|
37
|
-
2. `flink.flight.change.search`
|
|
38
|
-
- Search eligible changed flights for an existing order and passenger or segment scope.
|
|
39
|
-
3. `flink.flight.change.apply`
|
|
40
|
-
- Submit the actual change request with `priceKey`, passenger scope, segment scope, reason, and contact info.
|
|
41
|
-
4. `flink.flight.order.pay`
|
|
42
|
-
- If the change order requires payment, pay with `type=1`.
|
|
43
|
-
5. `flink.flight.change.detail`
|
|
44
|
-
- Track the change request by `changeOrderNo`.
|
|
45
|
-
6. `flink.flight.change.cancel`
|
|
46
|
-
- Cancel a pending change request by `changeOrderNo`.
|
|
47
|
-
|
|
48
|
-
Bridge identifiers:
|
|
49
|
-
|
|
50
|
-
- `orderNo` drives change search and apply.
|
|
51
|
-
- `priceKey` from change search is used in change apply.
|
|
52
|
-
- `changeOrderNo` drives detail and cancel.
|
|
53
|
-
|
|
54
|
-
## Refund Flow
|
|
55
|
-
|
|
56
|
-
Use this sequence for refunds:
|
|
57
|
-
|
|
58
|
-
1. `flink.flight.order.detail`
|
|
59
|
-
- Confirm the refundable order, passenger, and segment scope.
|
|
60
|
-
2. `flink.flight.refund.apply`
|
|
61
|
-
- Submit the refund request with passenger scope, segment scope, contact data, and reason.
|
|
62
|
-
3. `flink.flight.refund.detail`
|
|
63
|
-
- Track the refund request by `refundOrderNo`.
|
|
64
|
-
4. `flink.flight.refund.confirm`
|
|
65
|
-
- Confirm or cancel the refund request.
|
|
66
|
-
|
|
67
|
-
Bridge identifiers:
|
|
68
|
-
|
|
69
|
-
- `orderNo` drives refund apply.
|
|
70
|
-
- `refundOrderNo` drives detail and confirm.
|
|
71
|
-
|
|
72
|
-
## Base Data And Helper Calls
|
|
73
|
-
|
|
74
|
-
Use these APIs outside the booking lifecycle:
|
|
75
|
-
|
|
76
|
-
- `flink.airports.list`
|
|
77
|
-
- Paged airport list with optional keyword filtering.
|
|
78
|
-
- `flink.airlines.list`
|
|
79
|
-
- Paged airline list with optional keyword and code filtering.
|
|
80
|
-
- `flink.airports.search`
|
|
81
|
-
- Lightweight airport search by keyword.
|
|
82
|
-
- `flink.nationality.list`
|
|
83
|
-
- Nationality reference data.
|
|
84
|
-
- `flink.fields`
|
|
85
|
-
- Field translations and baggage or travel notice helpers.
|
|
86
|
-
- Provide either `priceKey` or `orderNo`.
|
|
87
|
-
|
|
88
|
-
## Language Parameter
|
|
89
|
-
|
|
90
|
-
All Flink routes except `flink.fields` require `{lang}` in the path.
|
|
91
|
-
|
|
92
|
-
Common values:
|
|
93
|
-
|
|
94
|
-
- `en`
|
|
95
|
-
- `zh_CN`
|
|
96
|
-
- `zh_TW`
|
|
97
|
-
|
|
98
|
-
Use the same `lang` across related calls unless there is a clear reason to switch.
|
|
99
|
-
|
|
100
|
-
## Business Handling Rules
|
|
101
|
-
|
|
102
|
-
- Do not treat HTTP `200` as enough; inspect `code`.
|
|
103
|
-
- Do not rebuild Flink headers; the runtime gateway handles downstream authentication.
|
|
104
|
-
- Preserve the original Flink identifiers from earlier responses instead of recomputing them.
|
|
1
|
+
# Flink API Workflows
|
|
2
|
+
|
|
3
|
+
## Search And Booking
|
|
4
|
+
|
|
5
|
+
Use this sequence for a normal booking flow:
|
|
6
|
+
|
|
7
|
+
1. `flink.flight.search`
|
|
8
|
+
- Search journeys and offer combinations.
|
|
9
|
+
- Save returned `priceKey` values for the next step.
|
|
10
|
+
2. `flink.flight.cabin`
|
|
11
|
+
- Use when a selected offer needs more fare or cabin quotes.
|
|
12
|
+
- Input is `priceKey`.
|
|
13
|
+
3. `flink.flight.verify`
|
|
14
|
+
- Validate the selected offer before order creation.
|
|
15
|
+
- Input is `priceKey`.
|
|
16
|
+
4. `flink.flight.order.create`
|
|
17
|
+
- Create the pre-booking order with contact and passenger data.
|
|
18
|
+
- Input still depends on `priceKey`.
|
|
19
|
+
5. `flink.flight.order.pay`
|
|
20
|
+
- Pay the standard order with `type=0`.
|
|
21
|
+
6. `flink.flight.order.detail`
|
|
22
|
+
- Read status, ticketing progress, and later change or refund context.
|
|
23
|
+
7. `flink.flight.order.cancel`
|
|
24
|
+
- Use only for cancellable standard orders.
|
|
25
|
+
|
|
26
|
+
Keep these state tokens:
|
|
27
|
+
|
|
28
|
+
- `priceKey`: search or cabin -> verify or order creation
|
|
29
|
+
- `orderNo`: order creation or detail -> pay, cancel, change, refund, fields
|
|
30
|
+
|
|
31
|
+
## Change Flow
|
|
32
|
+
|
|
33
|
+
Use this sequence for voluntary or involuntary changes:
|
|
34
|
+
|
|
35
|
+
1. `flink.flight.order.detail`
|
|
36
|
+
- Confirm order status and segment context.
|
|
37
|
+
2. `flink.flight.change.search`
|
|
38
|
+
- Search eligible changed flights for an existing order and passenger or segment scope.
|
|
39
|
+
3. `flink.flight.change.apply`
|
|
40
|
+
- Submit the actual change request with `priceKey`, passenger scope, segment scope, reason, and contact info.
|
|
41
|
+
4. `flink.flight.order.pay`
|
|
42
|
+
- If the change order requires payment, pay with `type=1`.
|
|
43
|
+
5. `flink.flight.change.detail`
|
|
44
|
+
- Track the change request by `changeOrderNo`.
|
|
45
|
+
6. `flink.flight.change.cancel`
|
|
46
|
+
- Cancel a pending change request by `changeOrderNo`.
|
|
47
|
+
|
|
48
|
+
Bridge identifiers:
|
|
49
|
+
|
|
50
|
+
- `orderNo` drives change search and apply.
|
|
51
|
+
- `priceKey` from change search is used in change apply.
|
|
52
|
+
- `changeOrderNo` drives detail and cancel.
|
|
53
|
+
|
|
54
|
+
## Refund Flow
|
|
55
|
+
|
|
56
|
+
Use this sequence for refunds:
|
|
57
|
+
|
|
58
|
+
1. `flink.flight.order.detail`
|
|
59
|
+
- Confirm the refundable order, passenger, and segment scope.
|
|
60
|
+
2. `flink.flight.refund.apply`
|
|
61
|
+
- Submit the refund request with passenger scope, segment scope, contact data, and reason.
|
|
62
|
+
3. `flink.flight.refund.detail`
|
|
63
|
+
- Track the refund request by `refundOrderNo`.
|
|
64
|
+
4. `flink.flight.refund.confirm`
|
|
65
|
+
- Confirm or cancel the refund request.
|
|
66
|
+
|
|
67
|
+
Bridge identifiers:
|
|
68
|
+
|
|
69
|
+
- `orderNo` drives refund apply.
|
|
70
|
+
- `refundOrderNo` drives detail and confirm.
|
|
71
|
+
|
|
72
|
+
## Base Data And Helper Calls
|
|
73
|
+
|
|
74
|
+
Use these APIs outside the booking lifecycle:
|
|
75
|
+
|
|
76
|
+
- `flink.airports.list`
|
|
77
|
+
- Paged airport list with optional keyword filtering.
|
|
78
|
+
- `flink.airlines.list`
|
|
79
|
+
- Paged airline list with optional keyword and code filtering.
|
|
80
|
+
- `flink.airports.search`
|
|
81
|
+
- Lightweight airport search by keyword.
|
|
82
|
+
- `flink.nationality.list`
|
|
83
|
+
- Nationality reference data.
|
|
84
|
+
- `flink.fields`
|
|
85
|
+
- Field translations and baggage or travel notice helpers.
|
|
86
|
+
- Provide either `priceKey` or `orderNo`.
|
|
87
|
+
|
|
88
|
+
## Language Parameter
|
|
89
|
+
|
|
90
|
+
All Flink routes except `flink.fields` require `{lang}` in the path.
|
|
91
|
+
|
|
92
|
+
Common values:
|
|
93
|
+
|
|
94
|
+
- `en`
|
|
95
|
+
- `zh_CN`
|
|
96
|
+
- `zh_TW`
|
|
97
|
+
|
|
98
|
+
Use the same `lang` across related calls unless there is a clear reason to switch.
|
|
99
|
+
|
|
100
|
+
## Business Handling Rules
|
|
101
|
+
|
|
102
|
+
- Do not treat HTTP `200` as enough; inspect `code`.
|
|
103
|
+
- Do not rebuild Flink headers; the runtime gateway handles downstream authentication.
|
|
104
|
+
- Preserve the original Flink identifiers from earlier responses instead of recomputing them.
|