Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Swagger Examples E2E tests fail... #153

Open
wants to merge 36 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
36 commits
Select commit Hold shift + click to select a range
f5db985
improved naming convention for importers
JonathanMontane Apr 26, 2017
901148e
removed v prefix for versions
JonathanMontane Apr 26, 2017
99c53e5
Merge pull request #131 from luckymarmot/131-improve-importer-names
JonathanMontane Apr 26, 2017
20ed8cd
fixed packing error
JonathanMontane Apr 26, 2017
55416cc
fix empty paths bug
JonathanMontane Apr 26, 2017
fc67d50
Merge pull request #133 from luckymarmot/133-improve-validation-swagger
JonathanMontane Apr 26, 2017
2cd15ed
fixed a bug where implicit host would fail to be correctly replaced w…
JonathanMontane Apr 26, 2017
3f40445
added potential culprit to tv4 validation
JonathanMontane Apr 26, 2017
004c58e
Merge pull request #132 from luckymarmot/132-fix-pack
JonathanMontane Apr 26, 2017
ec7f06e
Merge pull request #134 from luckymarmot/133-improve-validation-swagger
JonathanMontane Apr 26, 2017
a4ec0b0
fixed a bug where required was ignored. fixed a bug where schema defa…
JonathanMontane May 2, 2017
d3d21fb
fixed a bug where paths could start by another character than /
JonathanMontane May 2, 2017
cb4fd6f
Merge pull request #135 from luckymarmot/135-improve-paw-parser
JonathanMontane May 2, 2017
60d674e
added drafter.js to dependencies
JonathanMontane May 2, 2017
4061a65
added api-blueprint serializer, with documentation. still needs tests…
JonathanMontane May 9, 2017
1a838fa
added tests for api-blueprint serializer
JonathanMontane May 15, 2017
9237c76
removed todos
JonathanMontane May 15, 2017
d04d92e
Merge pull request #137 from luckymarmot/134-api-blueprint
JonathanMontane May 15, 2017
e785df6
fixes around methods and url-encoded body
JonathanMontane May 15, 2017
944ee36
Merge pull request #138 from luckymarmot/135-swagger-serializer-fixes
JonathanMontane May 15, 2017
54b3988
fixed a bug where swagger contentTypes could include charsets data
JonathanMontane May 17, 2017
81e7c16
Merge pull request #139 from luckymarmot/136-swagger-content-type
JonathanMontane May 17, 2017
b1ec796
Added link to documentation in README
JonathanMontane Aug 4, 2017
97c44d0
fixed a bug where a single slash between two components was removed f…
JonathanMontane Aug 16, 2017
8840d89
Merge pull request #140 from JonathanMontane/0002-luckymarmot
mittsh Aug 16, 2017
753ee23
added support for custom headers for api key auths
JonathanMontane Aug 20, 2017
64f5527
fixed pathname bug for very weird urls
JonathanMontane Sep 14, 2017
8542a8b
Merge branch '0002-luckymarmot' of github.com:JonathanMontane/API-Flo…
JonathanMontane Sep 14, 2017
1118c26
fixed missing postman loader, parser, and serializers from configs
JonathanMontane Oct 5, 2017
809235e
loaders now defaults to fsResolution instead of httpResolution
JonathanMontane Oct 5, 2017
c46ad2f
linting
JonathanMontane Oct 5, 2017
5bd2372
Merge pull request #141 from JonathanMontane/0002-luckymarmot
mittsh Nov 2, 2017
210f6b2
Fix convertAuthFromReference in Paw serializer
mittsh Nov 2, 2017
24cc71a
Merge pull request #143 from luckymarmot/fixes-2017-11
mittsh Nov 2, 2017
5870855
Support example and x-example in Swagger Properties
Dec 11, 2017
d9ec4da
Swagger Examples E2E tests fail...
Dec 11, 2017
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -56,3 +56,4 @@ lib/
.DS_Store
deploy-script.sh
coverage/
.nyc_output/
3 changes: 3 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,9 @@ API-Flow is one of the main components of [Console.REST](https://github.com/luck
PRs are welcomed!
Our sole requirement is that organizations that want to extend API-Flow to support their format write both a parser and a serializer, and not simply a serializer.

## Documentation
You can find more information about the internal structure of API-Flow in [src](https://github.com/luckymarmot/API-Flow/tree/develop/src). We've also created a set of templates to help speed up the extension process: [loader](https://github.com/luckymarmot/API-Flow/tree/develop/src/loaders/template/v1.0), [parser](https://github.com/luckymarmot/API-Flow/tree/develop/src/parsers/template/v1.0/), and [environment](https://github.com/luckymarmot/API-Flow/tree/develop/src/environments/template)

## License

This repository is released under the [MIT License](LICENSE). Feel free to fork, and modify!
Expand Down
12 changes: 9 additions & 3 deletions configs/node/api-flow-config.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,28 +2,34 @@ import Environment from '../../src/environments/node/Environment'

import SwaggerLoader from '../../src/loaders/swagger/Loader'
import RAMLLoader from '../../src/loaders/raml/Loader'
import PostmanV2Loader from '../../src/loaders/postman/v2.0/Loader'

import SwaggerV2Parser from '../../src/parsers/swagger/v2.0/Parser'
import RAMLV1Parser from '../../src/parsers/raml/v1.0/Parser'
import PostmanV2Parser from '../../src/loaders/postman/v2.0/Parser'

import SwaggerV2Serializer from '../../src/serializers/swagger/v2.0/Serializer'
import RAMLV1Serializer from '../../src/serializers/raml/v1.0/Serializer'
import PostmanV2Serializer from '../../src/serializers/postman/v2.0/Serializer'
import InternalSerializer from '../../src/serializers/internal/Serializer'

export const loaders = [
SwaggerLoader,
RAMLLoader
RAMLLoader,
PostmanV2Loader
]

export const parsers = [
SwaggerV2Parser,
RAMLV1Parser
RAMLV1Parser,
PostmanV2Parser
]

export const serializers = [
SwaggerV2Serializer,
RAMLV1Serializer,
InternalSerializer
InternalSerializer,
PostmanV2Serializer
]

export const environment = Environment
2 changes: 1 addition & 1 deletion configs/paw/generators/postman2/api-flow-config.js
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ export const serializers = [
export const target = {
identifier: 'com.luckymarmot.PawExtensions.PostmanCollectionGenerator',
title: 'PostmanCollectionGenerator',
humanTitle: 'Postman Collection v2.0',
humanTitle: 'Postman Collection 2.0',
format: PostmanV2Serializer.__meta__.format,
version: PostmanV2Serializer.__meta__.version
}
Expand Down
2 changes: 1 addition & 1 deletion configs/paw/generators/raml1/api-flow-config.js
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ export const serializers = [
export const target = {
identifier: 'com.luckymarmot.PawExtensions.RAML1Generator',
title: 'RAML1Generator',
humanTitle: 'RAML v1.0',
humanTitle: 'RAML 1.0',
format: RAMLV1Serializer.__meta__.format,
version: RAMLV1Serializer.__meta__.version
}
Expand Down
2 changes: 1 addition & 1 deletion configs/paw/generators/swagger/api-flow-config.js
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ export const serializers = [
export const target = {
identifier: 'com.luckymarmot.PawExtensions.SwaggerGenerator',
title: 'SwaggerGenerator',
humanTitle: 'Swagger v2.0',
humanTitle: 'Swagger 2.0',
format: SwaggerV2Serializer.__meta__.format,
version: SwaggerV2Serializer.__meta__.version
}
Expand Down
2 changes: 1 addition & 1 deletion configs/paw/importers/Importer.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ const methods = {}
@registerImporter // eslint-disable-line
class SwaggerImporter {
static identifier = source.identifier
static title = source.title
static title = source.humanTitle

static fileExtensions = [];

Expand Down
1 change: 1 addition & 0 deletions configs/paw/importers/postman2/api-flow-config.js
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ export const serializers = [
export const source = {
identifier: 'com.luckymarmot.PawExtensions.PostmanCollectionV2Importer',
title: 'PostmanCollectionV2Importer',
humanTitle: 'Postman Collection 2.0 Importer',
format: PostmanCollectionV2Parser.__meta__.format,
version: PostmanCollectionV2Parser.__meta__.version
}
Expand Down
1 change: 1 addition & 0 deletions configs/paw/importers/raml1/api-flow-config.js
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ export const serializers = [
export const source = {
identifier: 'com.luckymarmot.PawExtensions.RAML1Importer',
title: 'RAML1Importer',
humanTitle: 'RAML 1.0 Importer',
format: RAMLV1Parser.__meta__.format,
version: RAMLV1Parser.__meta__.version
}
Expand Down
1 change: 1 addition & 0 deletions configs/paw/importers/swagger/api-flow-config.js
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ export const serializers = [
export const source = {
identifier: 'com.luckymarmot.PawExtensions.SwaggerImporter',
title: 'SwaggerImporter',
humanTitle: 'Swagger 2.0 Importer',
format: SwaggerV2Parser.__meta__.format,
version: SwaggerV2Parser.__meta__.version
}
Expand Down
12 changes: 9 additions & 3 deletions configs/web/api-flow-config.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,28 +2,34 @@ import Environment from '../../src/environments/web/Environment'

import SwaggerLoader from '../../src/loaders/swagger/Loader'
import RAMLLoader from '../../src/loaders/raml/Loader'
import PostmanV2Loader from '../../src/loaders/postman/v2.0/Loader'

import SwaggerV2Parser from '../../src/parsers/swagger/v2.0/Parser'
import RAMLV1Parser from '../../src/parsers/raml/v1.0/Parser'
import PostmanV2Parser from '../../src/loaders/postman/v2.0/Parser'

import SwaggerV2Serializer from '../../src/serializers/swagger/v2.0/Serializer'
import RAMLV1Serializer from '../../src/serializers/raml/v1.0/Serializer'
import PostmanV2Serializer from '../../src/serializers/postman/v2.0/Serializer'
import InternalSerializer from '../../src/serializers/internal/Serializer'

export const loaders = [
SwaggerLoader,
RAMLLoader
RAMLLoader,
PostmanV2Loader
]

export const parsers = [
SwaggerV2Parser,
RAMLV1Parser
RAMLV1Parser,
PostmanV2Parser
]

export const serializers = [
SwaggerV2Serializer,
RAMLV1Serializer,
InternalSerializer
InternalSerializer,
PostmanV2Serializer
]

export const environment = Environment
12 changes: 9 additions & 3 deletions configs/webworker/api-flow-config.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,28 +2,34 @@ import Environment from '../../src/environments/web/Environment'

import SwaggerLoader from '../../src/loaders/swagger/Loader'
import RAMLLoader from '../../src/loaders/raml/Loader'
import PostmanV2Loader from '../../src/loaders/postman/v2.0/Loader'

import SwaggerV2Parser from '../../src/parsers/swagger/v2.0/Parser'
import RAMLV1Parser from '../../src/parsers/raml/v1.0/Parser'
import PostmanV2Parser from '../../src/loaders/postman/v2.0/Parser'

import SwaggerV2Serializer from '../../src/serializers/swagger/v2.0/Serializer'
import RAMLV1Serializer from '../../src/serializers/raml/v1.0/Serializer'
import PostmanV2Serializer from '../../src/serializers/postman/v2.0/Serializer'
import InternalSerializer from '../../src/serializers/internal/Serializer'

export const loaders = [
SwaggerLoader,
RAMLLoader
RAMLLoader,
PostmanV2Loader
]

export const parsers = [
SwaggerV2Parser,
RAMLV1Parser
RAMLV1Parser,
PostmanV2Parser
]

export const serializers = [
SwaggerV2Serializer,
RAMLV1Serializer,
InternalSerializer
InternalSerializer,
PostmanV2Serializer
]

export const environment = Environment
1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@
"babel-plugin-transform-flow-strip-types": "6.3.15",
"babel-polyfill": "6.3.14",
"babel-runtime": "6.3.19",
"drafter.js": "^2.6.6",
"immutable": "^3.8.1",
"js-yaml": "3.5.5",
"json-schema-faker": "^0.3.7",
Expand Down
6 changes: 5 additions & 1 deletion scripts/pack.sh
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,13 @@ do
echo "extension: $extension"
if [ -d "$extension" ]
then
cd "$extension/.."
echo "in $extension --- $(ls)"
package=$(echo "$extension" | sed -E 's-.*/([^/]+)-\1-')
zip -r "$package.zip" "$extension/";
echo "package --- $package"
zip -r "$package.zip" "./$package";
mv "./$package.zip" "$base/releases/paw/";
cd "$base"
fi;
done;
cd "$base"
4 changes: 3 additions & 1 deletion src/api-flow-config.js
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ import SwaggerV2Serializer from './serializers/swagger/v2.0/Serializer'
import RAMLV1Serializer from './serializers/raml/v1.0/Serializer'
import InternalSerializer from './serializers/internal/Serializer'
import PostmanV2Serializer from './serializers/postman/v2.0/Serializer'
import ApiBlueprint1ASerializer from './serializers/api-blueprint/1A/Serializer'

export const loaders = [
SwaggerLoader,
Expand All @@ -33,7 +34,8 @@ export const serializers = [
SwaggerV2Serializer,
RAMLV1Serializer,
InternalSerializer,
PostmanV2Serializer
PostmanV2Serializer,
ApiBlueprint1ASerializer
]

export const environment = Environment
7 changes: 4 additions & 3 deletions src/loaders/internal/Loader.js
Original file line number Diff line number Diff line change
Expand Up @@ -70,11 +70,12 @@ methods.parseJSON = (str) => {

methods.resolve = (options, uri, { $ref = '' } = {}) => {
const uriToLoad = resolve(uri, $ref)
if (parse(uriToLoad).protocol === 'file:') {
return options.fsResolver.resolve(uriToLoad.split('#')[0])
const protocol = parse(uriToLoad).protocol
if (protocol && protocol.substr(0, 4) === 'http') {
return options.httpResolver.resolve(uriToLoad.split('#')[0])
}

return options.httpResolver.resolve(uriToLoad.split('#')[0])
return options.fsResolver.resolve(uriToLoad.split('#')[0])
}


Expand Down
6 changes: 3 additions & 3 deletions src/loaders/postman/v2.0/Loader.js
Original file line number Diff line number Diff line change
Expand Up @@ -87,11 +87,11 @@ methods.isParsable = (content) => {
methods.resolve = (options, uri, { $ref = '' } = {}) => {
const uriToLoad = resolve(uri, $ref)
const protocol = parse(uriToLoad).protocol
if (protocol === 'file:' || protocol === 'file') {
return options.fsResolver.resolve(uriToLoad.split('#')[0])
if (protocol && protocol.substr(0, 4) === 'http') {
return options.httpResolver.resolve(uriToLoad.split('#')[0])
}

return options.httpResolver.resolve(uriToLoad.split('#')[0])
return options.fsResolver.resolve(uriToLoad.split('#')[0])
}

methods.normalizeRequestItem = (item) => {
Expand Down
22 changes: 18 additions & 4 deletions src/loaders/swagger/Loader.js
Original file line number Diff line number Diff line change
Expand Up @@ -122,11 +122,12 @@ methods.traverse = (content, { $ref = '#/' } = {}) => {

methods.resolve = (options, uri, { $ref = '' } = {}) => {
const uriToLoad = resolve(uri, $ref)
if (parse(uriToLoad).protocol === 'file:') {
return options.fsResolver.resolve(uriToLoad.split('#')[0])
const protocol = parse(uriToLoad).protocol
if (protocol && protocol.substr(0, 4) === 'http') {
return options.httpResolver.resolve(uriToLoad.split('#')[0])
}

return options.httpResolver.resolve(uriToLoad.split('#')[0])
return options.fsResolver.resolve(uriToLoad.split('#')[0])
}

methods.objectMap = (obj, func) => {
Expand Down Expand Up @@ -159,9 +160,22 @@ methods.fixRemotePaths = (options, uri, swagger) => {
})
}

methods.fixImplicitHost = (uri) => {
if (!uri) {
return 'localhost'
}

const host = parse(uri).host
if (!host) {
return 'localhost'
}

return host
}

methods.fixImplicitUriReferences = (options, uri, swagger) => {
if (!swagger.host) {
swagger.host = uri ? parse(uri).host : 'localhost'
swagger.host = methods.fixImplicitHost(uri)
}

if (!swagger.schemes || !swagger.schemes.length) {
Expand Down
6 changes: 3 additions & 3 deletions src/loaders/template/v1.0/Loader.js
Original file line number Diff line number Diff line change
Expand Up @@ -125,11 +125,11 @@ methods.isParsable = (content) => {
methods.resolve = (options, uri, { $ref = '' } = {}) => {
const uriToLoad = resolve(uri, $ref)
const protocol = parse(uriToLoad).protocol
if (protocol === 'file:' || protocol === 'file' || !protocol) {
return options.fsResolver.resolve(uriToLoad.split('#')[0])
if (protocol && protocol.substr(0, 4) === 'http') {
return options.httpResolver.resolve(uriToLoad.split('#')[0])
}

return options.httpResolver.resolve(uriToLoad.split('#')[0])
return options.fsResolver.resolve(uriToLoad.split('#')[0])
}

/**
Expand Down
Loading