# @mw866/petstore-api

> This is a Petstore API service built on Node.

Latest version **1.0.7** (published 2021-08-08) · Apache-2.0 license · 0 weekly downloads

## Install

```sh
npm install @mw866/petstore-api
pnpm add @mw866/petstore-api
yarn add @mw866/petstore-api
bun add @mw866/petstore-api
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.0.7 |
| Published | 2021-08-08 |
| First published | 2021-04-14 |
| Weekly downloads | 0 |
| License | Apache-2.0 |
| TypeScript types | none |
| Module format | CommonJS |
| Node | 16.x |
| Dependencies | 3 |
| Unpacked size | 43.8 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Author | Chris Wang |
| Maintainers | mw866 |
| Keywords | api, nodejs, node |

## Links

- npm: https://www.npmjs.com/package/@mw866/petstore-api
- npm.io page: https://npm.io/package/@mw866/petstore-api

## Dependencies (3)

- [connect](https://npm.io/package/connect.md) ^3.2.0
- [js-yaml](https://npm.io/package/js-yaml.md) ^3.3.0
- [oas3-tools](https://npm.io/package/oas3-tools.md) ^2.2.3

## Alternatives

- [@expo/fingerprint](https://npm.io/package/@expo/fingerprint.md) — 6.2M weekly downloads
- [@azure/monitor-opentelemetry-exporter](https://npm.io/package/@azure/monitor-opentelemetry-exporter.md) — 850.0K weekly downloads
- [@azure/monitor-opentelemetry](https://npm.io/package/@azure/monitor-opentelemetry.md) — 624.0K weekly downloads
- [@posthog/ai](https://npm.io/package/@posthog/ai.md) — 423.3K weekly downloads
- [fakefilter](https://npm.io/package/fakefilter.md) — 63.9K weekly downloads

## Recent versions

- 1.0.7 (latest) — 2021-08-08
- 1.0.5 — 2021-04-14
- 1.0.1 — 2021-04-14

## README

# PetStore API
[![Create new releases](https://github.com/mw866/petstore-api/actions/workflows/release.yml/badge.svg)](https://github.com/mw866/petstore-api/actions/workflows/release.yml)
[![CI](https://github.com/mw866/petstore-api/actions/workflows/ci.yml/badge.svg)](https://github.com/mw866/petstore-api/actions/workflows/ci.yml)
## Overview

This is a Petstore API service generated by `swagger-codegen`

## Manually generate node server code

```
swagger-codegen generate -i api/openapi.yaml -l nodejs-server 
```

## Build the Docker image

### Automated build

See https://hub.docker.com/r/mw866/petstore-api

GitHub Actions takes care of the multi-platform build.

### Manual build

```
docker build -t mw866/petstore-api:latest .
```

**Step 1** - Install [buildx](https://github.com/docker/buildx).

**Step 2** - Create the `buildx` builder instance.

```
docker buildx create --use
```

**Step 3** - Check the runtime supported.

```
docker buildx inspect --bootstrap
```

**Step 4** - Build and publish the image

```
export TAG=$(jq -r .version package.json)
docker buildx build --push --platform linux/arm/v7,linux/arm64/v8,linux/amd64 --tag mw866/petstore-api:$TAG --tag mw866/petstore-api:latest .
```

## Running the server locally

### With Docker

```
docker run mw866/petstore-api -p 8080:8080
```

### Without Docker
To run the server, run:

```
npm start
```

## Publish application using `cloudflared` and `docker-compose`

1. Install `cloudflared` 
1. Run `cloudflared login`
1. Update the values in `.env.example` and rename it to `.env`.
1. Install Docker Engine and `docker-compose`
1. Run `docker-compose up`

If you see the error message like ```cloudflared    | Error getting origin cert: cannot check if origin cert exists at path /.cloudflared/cert.pem```, it's because of the non-privileged user in the `cloudflared` Docker image. See [this issue](https://github.com/cloudflare/cloudflared/issues/163) for solution.

## Reference

[Dockerizing a Node.js web app](https://nodejs.org/en/docs/guides/nodejs-docker-webapp/)

[Publishing Docker images using GitHub Actions (outdated)](https://docs.github.com/en/actions/guides/publishing-docker-images)

[Building and testing Node.js](https://docs.github.com/en/actions/guides/building-and-testing-nodejs)

---
_Source: https://npm.io/package/@mw866/petstore-api · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
