All Projects β†’ bow-swift β†’ bow-openapi

bow-swift / bow-openapi

Licence: other
🌐 Functional HTTP client generator from an OpenAPI/Swagger specification.

Programming Languages

swift
15916 projects
Makefile
30231 projects

Projects that are alternatives of or similar to bow-openapi

nef-editor-client
πŸ“±Client-side code for the nef editor app
Stars: ✭ 20 (-57.45%)
Mutual labels:  swift-package-manager, bow
Martian
The HTTP abstraction library for Clojure/script, supporting Swagger, Schema, re-frame and more
Stars: ✭ 294 (+525.53%)
Mutual labels:  http-client, openapi
cube
Common LISP Kubernetes Client
Stars: ✭ 33 (-29.79%)
Mutual labels:  http-client, openapi
Rester
A command line tool to test (REST) APIs
Stars: ✭ 42 (-10.64%)
Mutual labels:  swift-package-manager, http-client
sttp-openapi-generator
Generate sttp client from openapi specification with ease!
Stars: ✭ 26 (-44.68%)
Mutual labels:  http-client, openapi
http4s-good-practices
Collection of what I consider good practices in Http4s (WIP)
Stars: ✭ 74 (+57.45%)
Mutual labels:  http-client
core-data-model-description
Declarative way to describe a Core Data model in code.
Stars: ✭ 60 (+27.66%)
Mutual labels:  swift-package-manager
wapiml
An OpenAPI round-trip tool that leverages model-driven techniques to create, visualize, manage, and generate OpenAPI definitions.
Stars: ✭ 61 (+29.79%)
Mutual labels:  openapi
lodata
The OData v4.01 Producer for Laravel
Stars: ✭ 40 (-14.89%)
Mutual labels:  openapi
swish
C++ HTTP requests for humans
Stars: ✭ 52 (+10.64%)
Mutual labels:  http-client
fitch.js
A lightweight Promise based HTTP client, using Fetch API.
Stars: ✭ 35 (-25.53%)
Mutual labels:  http-client
Networking
Low-level Swift package for POSIX sockets and Epoll/Kqueue.
Stars: ✭ 21 (-55.32%)
Mutual labels:  swift-package-manager
moleculer-http-client
HTTP client mixin that allows Moleculer services to communicate with remote REST APIs
Stars: ✭ 14 (-70.21%)
Mutual labels:  http-client
xhttpc
Extensible HTTP Client for Erlang
Stars: ✭ 25 (-46.81%)
Mutual labels:  http-client
Rx.Http
A reactive way to make HTTP Request in .NET Core πŸš€
Stars: ✭ 62 (+31.91%)
Mutual labels:  http-client
feign-opentracing
OpenTracing Feign integration
Stars: ✭ 20 (-57.45%)
Mutual labels:  http-client
dzcode.io
Website & mobile app for Algerian open-source community
Stars: ✭ 104 (+121.28%)
Mutual labels:  openapi
openapi-petstore
The pet store sample
Stars: ✭ 35 (-25.53%)
Mutual labels:  openapi
PermissionDirector
a iOS permission manager writtern by Swift
Stars: ✭ 29 (-38.3%)
Mutual labels:  swift-package-manager
Sensor
A fresh look at iOS development
Stars: ✭ 37 (-21.28%)
Mutual labels:  swift-package-manager

Bow OpenAPI

Build Site SPM compatible Gitter

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 for extensive and detailed documentation about the project.

Features

πŸ’‘ Automatic generation of network clients written in Swift from an OpenAPI / Swagger specification file, in YAML or JSON formats.

πŸ“¦ Provision of a Swift Package that can be consumed from Swift Package Manager.

πŸ”¨ Integration with Xcode as a build phase to always keep your code in sync with your specification.

πŸ’₯ Usage of Environmental Effects from Bow to suspend side-effects, and improve their composition and testability.

βœ… Enhanced test support for integration or end-to-end test with no mocks.

 

Installation guide

Bow OpenAPI is compatible with Unix systems.

πŸ’» OS X users

You can install Bow OpenAPI using Homebrew. Its formula is not still in the main repository; therefore, you need to tap it first, before installing it:

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

🐧 Linux users

curl -s https://api.github.com/repos/bow-swift/bow-openapi/releases/latest \
 | grep -oP '"tag_name": "\K(.*)(?=")' \
 | xargs -I {} wget -O - https://github.com/bow-swift/bow-openapi/archive/{}.tar.gz \
 | tar xz \
 && sudo make linux -C bow-openapi-*

It will install the last stable version.

Bow OpenAPI depends on Java 8+ and swagger-codegen; both will be installed from Makefile. After the installation, you can type bow-openapi -h in a new termintal to check it.

βš™οΈ Usage

You can invoke the tool with the following parameters:

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 to help us shape the future of Bow OpenAPI.

βš–οΈ License

Copyright (C) 2020-2021 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.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].