Skip to content

Commit

Permalink
Add README (#18)
Browse files Browse the repository at this point in the history
* Add README

* Italics to Bold

* Add header image

* Add links to README

* Update year in legal section

* Add list of features to documentation home page.

Update README.md

Update README.md
  • Loading branch information
truizlop authored and miguelangel-dev committed Feb 2, 2020
1 parent def5936 commit 868a878
Show file tree
Hide file tree
Showing 5 changed files with 90 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
/*:
# Credits

2019 - © The Bow OpenAPI Authors
2020 - © The Bow OpenAPI Authors

For a comprehensive list of contributors, [visit the repository](https://github.com/bow-swift/bow-openapi/graphs/contributors) on GitHub.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
/*:
# License

Copyright 2019 The Bow OpenAPI Authors
Copyright 2020 The Bow OpenAPI Authors

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
Expand Down
10 changes: 10 additions & 0 deletions Documentation.app/Jekyll/Home.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,16 @@ permalink: /docs/

Bow OpenAPI is a command line tool to generate a network client written in Swift from an OpenAPI specification that uses the environmental effect type `EnvIO` from [Bow](https://bow-swift.io/). Its main features are:

💡 [Automatic generation](https://openapi.bow-swift.io/docs/generation-examples/basic-generation/) of network clients written in Swift from an OpenAPI / Swagger specification file, in YAML or JSON formats.

📦 Provision of a [Swift Package](https://openapi.bow-swift.io/docs/consuming-generated-code/adding-the-module-to-your-project/) that can be consumed from Swift Package Manager.

🔨 [Integration with Xcode](https://openapi.bow-swift.io/docs/quick-start/integration-in-xcode/) as a build phase to always keep your code in sync with your specification.

💥 Usage of [Environmental Effects](https://openapi.bow-swift.io/docs/consuming-generated-code/running-a-network-request/) from [Bow](https://bow-swift.io) to suspend side-effects, and improve their composition and testability.

[Enhanced test support](https://openapi.bow-swift.io/docs/consuming-generated-code/testing-your-network-calls/) for integration or end-to-end test with no mocks.

## Parsing of OpenAPI specifications

Bow OpenAPI is able to consume OpenAPI / Swagger specifications as either JSON or YAML files. It relies on the `swagger-codegen` command line tool to parse these files, and then provides a set of templates to customize the output of the tool, together with an additional processing of the result.
Expand Down
78 changes: 78 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
![Bow OpenAPI](assets/header-bow-openapi.png)

<p align="center">

<a href="https://github.com/bow-swift/nef">
<img src="https://img.shields.io/badge/Dependency%20Manager-Swift%20PM-orange" alt="Swift Package Manager compatible">
</a>

<a href="https://gitter.im/bowswift/bow">
<img src="https://img.shields.io/badge/Gitter-Bow%20OpenAPI-red" alt="Gitter">
</a>

</p>

**Bow OpenAPI** is a command-line tool to generate a Swift network client from an OpenAPI / Swagger specification file. Please, refer to the [project website](https://openapi.bow-swift.io) for extensive and detailed documentation about the project.

### Features

💡 [Automatic generation](https://openapi.bow-swift.io/docs/generation-examples/basic-generation/) of network clients written in Swift from an OpenAPI / Swagger specification file, in YAML or JSON formats.

📦 Provision of a [Swift Package](https://openapi.bow-swift.io/docs/consuming-generated-code/adding-the-module-to-your-project/) that can be consumed from Swift Package Manager.

🔨 [Integration with Xcode](https://openapi.bow-swift.io/docs/quick-start/integration-in-xcode/) as a build phase to always keep your code in sync with your specification.

💥 Usage of [Environmental Effects](https://openapi.bow-swift.io/docs/consuming-generated-code/running-a-network-request/) from [Bow](https://bow-swift.io) to suspend side-effects, and improve their composition and testability.

[Enhanced test support](https://openapi.bow-swift.io/docs/consuming-generated-code/testing-your-network-calls/) for integration or end-to-end test with no mocks.

&nbsp;

## 💻 Installation

You can [install Bow OpenAPI](https://openapi.bow-swift.io/docs/quick-start/installation-guide/) using [Homebrew](https://brew.sh/index_es). Its formula is not still in the main repository; therefore, you need to tap it first, before installing it:

```bash
brew tap bow-swift/bow
brew install bow-openapi
```

## ⚙️ Usage

You can [invoke the tool](https://openapi.bow-swift.io/docs/quick-start/how-to-run-bow-openapi/) with the following parameters:

```bash
bow-openapi --name <NAME> --schema <YAML | JSON> --output <FOLDER>
```

- `name` is the name for the generated module in the resulting Swift Package. You will have to import it in your code using `import <NAME>`.
- `schema` is the path to the OpenAPI / Swagger specification file. It accepts both YAML or JSON formats.
- `output` is the folder where the result will be saved.

## ❤️ Contributing to the project

We welcome your contributions! Help us make Bow OpenAPI better:

🐛 File an issue if you find a bug.

🆕 Suggest a new feature for Bow OpenAPI.

➡️ Open a Pull Request fixing a problem or adding new functionality.

💬 Discuss with us in our [Gitter channel](https://gitter.im/bowswift/bow) to help us shape the future of Bow OpenAPI.

# ⚖️ License

Copyright (C) 2020 The Bow Authors

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Binary file added assets/header-bow-openapi.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit 868a878

Please sign in to comment.