Ich verwende IBM APIConnect, um ein paar APIs zu erstellen. Ich habe versucht, die YAML-Definition meiner API zu bearbeiten, um Verweise auf Eigenschaften zu erstellen, damit ich sie externalisieren kann. Aber bis jetzt hatte ich Probleme mit der Referenzierung. Sie validieren entweder nicht gegen API API-Definition "API Connect Swagger-Erweiterungen" oder gegen "API-Definition von IBM Swagger Version 2.0-Schema".
Hier sind die beiden Referenzierung ich versucht: -
- Referenzierung securityDefinitions: Wie in der IBM-Website beschrieben: https://www.ibm.com/support/knowledgecenter/en/SSMNED_5.0.0/com.ibm.apic.toolkit.doc/rapic_swagger_ref_fragment.html
mein YAML: -
swagger: '2.0'
info:
version: 1.0.0
title: PokemonApp
x-ibm-name: pokemonapp
host: $(catalog.host)
basePath: /api
paths:
/pokemon:
get:
responses:
'200':
description: 200 OK
securityDefinitions:
$ref: ./schemas/ClientID.yaml
security:
- clientID: []
x-ibm-configuration:
assembly:
execute:
- invoke:
target-url: $(TestProperty)
properties:
TestProperty:
value: 'https://pokemons.mybluemix.net/api/pokemons'
description: ''
encoded: false
gateway: micro-gateway
Und es ist entsprechende Referenzdatei: -
clientID:
description: ''
in: query
name: client_id
type: apiKey
auf dem übergeordneten APIC Validieren Auf tun YAML, ich die folgende Fehlermeldung erhalten: -
C:\Users\MyName\TestNotes\definitions>apic validate pokemonapp_1.0.0.yaml
Successfully validated pokemonapp_1.0.0.yaml against Swagger Version 2.0 schema API definition [pokemonapp:1.0.0].
Successfully validated pokemonapp_1.0.0.yaml against API Connect swagger extensions schema API definition [pokemonapp:1.0.0].
Error validating pokemonapp_1.0.0.yaml with IBM Swagger Version 2.0 schema API definition [pokemonapp:1.0.0].
Data does not match any schemas from "oneOf" (/securityDefinitions/$ref)
Error: Validation did not complete successfully.
- Referenzierung Eigenschaften: -
Hier ist die Eltern YAML: -
swagger: '2.0'
info:
version: 1.0.0
title: PokemonApp
x-ibm-name: pokemonapp
host: $(catalog.host)
basePath: /api
paths:
/pokemon:
get:
responses:
'200':
description: 200 OK
securityDefinitions:
clientID:
description: ''
in: query
name: client_id
type: apiKey
security:
- clientID: []
x-ibm-configuration:
assembly:
execute:
- invoke:
target-url: $(TestProperty)
properties:
$ref: ./schemas/properties.yaml
gateway: micro-gateway
und die entsprechenden Referenzdatei (./schemas/properties.yaml):-
TestProperty:
type: object
value: 'https://pokemons.mybluemix.net/api/pokemons'
description: ''
encoded: false
Bei der Validierung ist der Fehler ein anderer. Dieser YAML validiert gegen Swagger Version 2.0-Schema-API-Definition und gegen IBM Swagger Version 2.0-Schema-API-Definition, aber nicht gegen API Connect-Swagger-Erweiterungen Schema API-Definition.
Hier ist die Fehlermeldung: -
C:\Users\MyName\TestNotes\definitions>apic validate pokemonapp_1.0.0.yaml
Successfully validated pokemonapp_1.0.0.yaml against Swagger Version 2.0 schema API definition [pokemonapp:1.0.0].
Error validating pokemonapp_1.0.0.yaml with API Connect swagger extensions schema API definition [pokemonapp:1.0.0].
Invalid type: string (expected object) (/properties/$ref)
Successfully validated pokemonapp_1.0.0.yaml against IBM Swagger Version 2.0 schema API definition [pokemonapp:1.0.0].
Error: Validation did not complete successfully.
Anu Ahnung, was ich hier falsch mache? P.S. In beiden Fällen validiert der Swagger die Swagger-Version 2.0-Schema-API-Definition. Es ist nur gegen die IBM spezifischen Schemas, die sie nicht tun.
Welche Version von APIConnect verwenden Sie? 'APIC --ext-version' – Rick
APIC --ext-Version apiconnect: v2.1.19 (API Connect: v5.0.2.1) apiconnect-cli-apis 2.1.0 apiconnect-cli-apps 2.1.0 apiconnect-cli-auth 2.1.6 apiconnect-cli-Kataloge 2.1.0 apiconnect-cli-config 2.1.0 apiconnect-cli erstellen 2.1.1 apiconnect-cli-Entwürfe 2.1.0 apiconnect-cli-edit 2.1.0 apiconnect-cli-Loopback 2.1.3 apiconnect-cli-Orgs 2.1.0 apiconnect-cli-pm 2.1.0 microgateway 1.2.0 Flow-Engine 1.0.3 apiconnect-cli-Politik 1.1. 0 apiconnect-c li-products 2.1.0 apiconnect-cli-validate 2.1.0 plugins 3.0.2 –
Ich hoffe, Sie machen keine Pokemon Go-Spoofer-App! Spoofing ist schlecht mmkay. – MBillau