2.1.19 โ€ข Published 1 day ago

@devtea2027/harum-nesciunt-corporis-id v2.1.19

Weekly downloads
-
License
MIT
Repository
github
Last release
1 day ago

๐Ÿฆ‹ @devtea2027/harum-nesciunt-corporis-id

docs.

example workflow npm.io npm.io All Contributors Coverage Status Codacy Badge npm.io Gitpod Ready-to-Code npm.io npm.io

An OpenApi validator for ExpressJS that automatically validates API requests and responses using an OpenAPI 3 specification.

๐Ÿฆ‹@devtea2027/harum-nesciunt-corporis-id is an unopinionated library that integrates with new and existing API applications. @devtea2027/harum-nesciunt-corporis-id lets you write code the way you want; it does not impose any coding convention or project layout. Simply, install the validator onto your express app, point it to your OpenAPI 3 specification, then define and implement routes the way you prefer. See an example.

Features:

  • โœ”๏ธ request validation
  • โœ”๏ธ response validation (json only)
  • ๐Ÿ‘ฎ security validation / custom security functions
  • ๐Ÿ‘ฝ 3rd party / custom formats / custom data serialization-deserialization
  • ๐Ÿงต optionally auto-map OpenAPI endpoints to Express handler functions
  • โœ‚๏ธ \$ref support; split specs over multiple files
  • ๐ŸŽˆ file upload

Docs:

GitHub stars Twitter URL

NestJS Koa and Fastify now available! ๐Ÿš€

Install

npm install @devtea2027/harum-nesciunt-corporis-id

## latest beta
npm install @devtea2027/harum-nesciunt-corporis-id@4.14.0-beta.1

Usage

  1. Require/import the openapi validator
const OpenApiValidator = require('@devtea2027/harum-nesciunt-corporis-id');

or

import * as OpenApiValidator from '@devtea2027/harum-nesciunt-corporis-id';
  1. Install the middleware
app.use(
  OpenApiValidator.middleware({
    apiSpec: './openapi.yaml',
    validateRequests: true, // (default)
    validateResponses: true, // false by default
  }),
);
  1. Register an error handler
app.use((err, req, res, next) => {
  // format error
  res.status(err.status || 500).json({
    message: err.message,
    errors: err.errors,
  });
});

Important: Ensure express is configured with all relevant body parsers. Body parser middleware functions must be specified prior to any validated routes. See an example.

Documentation

See the doc for complete documenation

deprecated legacy doc

License

MIT

testershimbeanstalkflagssortkinesismkdirlinewrapcoercibleECMAScript 2019argparsefindLastIndexstarterwalkpromisesclass-validatorwhatwgiteratecolumncall-bindredactendpointdeterministiccurlregexmonorepofile systemwatchinginstallers3checkproxyartES2021throatpipecore-jsio-tscloudformationlimitedes-shim APIarktypeinvariantreadableStreamsWeakMaptestmixinslivepicomatchutilitiesfunctionsoptimistArrayBuffer.prototype.slicewatchFileassertdropassertshandlersECMAScript 2021indicatorclassesES2019webperformanceclonedefinesqschinesees6limitshellpositiveeslintplugintapgroupfseventsmodulesautoscalingrmdirjavascriptCSSStyleDeclarationRegExp.prototype.flagsclifast-deep-copyes-abstractJSON-SchemaidentifiersmochatoArrayreplayfluxECMAScript 2018validatesorteddefinePropertyimmerserializationtestingrestfulStyleSheetbyteObject.getPrototypeOfloggerstatelessObjectwordbreaklibphonenumberprotobufmime-dblessreact-hooksECMAScript 2020WeakSetmulti-packageRFC-6455matchesfigletjsdiffprocessnativeenvironmenttoSortedsymlinkstoobjectformattingschemafiltereventEmitterpreserve-symlinksestypedarraystermsimpledbpropertiesidcallbackparentlogStreamdiffdescriptionconfigwatcherjwtstylesheetstreamsparentsjsonpathdeep-copyloggingrandomexit-codevisualoptiontouchajaxmiddlewareclassnamesstylescolumnsfoldersymboldeep-clonesyntaxes2015trimEndreduceencryptionreal-timefastdependenciesES2022UnderscoreobjectreusehasOwnPropertyconsolereduxsigintObject.valuesiampredictableprototypeirqserializerismapcommand-linecharactertostringtagexpressioncolorES7makehelpersES3ESnextefficientgetintrinsicvesthotpackage.jsonloadbalancingES2017karmaclientworkflow0formatassertionreact-testing-library__proto__ArrayBufferECMAScript 7circularcommandworkspace:*cryptmake diroffsetpushoutputsetPrototypeOfRegExp#flagscollectionArray.prototype.flattenUint8ArraysetglobalsvaluemovequeueMicrotaskprivate dataES2015[[Prototype]]regexpconcatMapless compilerwatchbannertypedcloudfronttypedarraysameValueZerobddinferencedirectoryPushhas-ownlrumkdirpaccessibilityhigher-orderJSONvarsSymbol.toStringTagslotsyntaxerrorfunctionalfsmergeArray.prototype.flatyamliterationObservableec2react-hook-formcorsplugindynamodbarrayconsumeflatMapES2020waitregularURLarraysgetPrototypeOfprivatematchAllrm -rfnumberopenslicemomentregular expressionsvalidBigUint64ArraystringES8AsyncIteratorbyteOffsetformsdebugconcurrencystringifystdlibdom-testing-libraryobjnodejsstreams2structuredClonexhrconnectbatchcss lessspinnertrimStartloadingpackage managerincludesnamesjsdomtypeerrorflatajv.enves-shimsgetterdotenvrequire_.extenddatewidthchromenamehttpswindowsECMAScript 2015nopeemitfast-deep-clonereactdeepcopyObject.definePropertyspinnerszeroansiMapwarningWebSocketMicrosoftspecjQueryprotocol-bufferstoStringTagcontainstextchaithrottlees7flattenObject.fromEntrieshookformcode pointsoperating-systemappECMAScript 6hasBigInt64ArraycopygenericstrimLeftdescriptorpyyamlagentoncejasminecodestrimstoragegatewaychromiumtc39descriptorsxtermes5trimRightless mixinsgradients cssebses8getlastconfigurablenpmworkerRxqueuecss-in-jsTypeBoxglacieruphardlinksa11ypackagesdayjspropertyawsoptimizerapiterminalponyfillwordwrapCSSratebluebirdperformantisConcatSpreadableelbbootstrap lessestreemapreducerangeerrorwaffixed-widthbundlingfull-widthbrowserlistprogressflagstableeventssymbolsinternal slotArrayBuffer#slicepolyfillcjksidespeedbrowserslistcensorArray.prototype.findLastIndexsharedarraybuffergloblockfilelook-upmkdirsgroupByinglobalSetttywalkingtslibcloudtrailshamquerystringUint32ArrayvariablesclassnamemacosreducercommanderFloat64ArrayexpressfastclonerestshebangSymbolRxJSuuidpruneresolveextensionrgbeveryinputtypanionECMAScript 2022fetchinterrupts@@toStringTagwrapprefixwgetfastifyimportInt8ArrayTypeScriptObject.istakequerybufferscloudwatchses-0cryptoenderES2018YAMLArray.prototype.includeslazyphonedataviewboundframeworkdeepruntimeUint8ClampedArraypackagetypeoffindLastinspecttddkeydirconcatbreakstyleguidelinuxequalgetOwnPropertyDescriptorrapidgetoptes2016css variableString.prototype.matchAllcompile lesstimetyped array
@devtea2027/a-eum-officia-impedit@devtea2027/accusamus-aspernatur-voluptatibus-eos@devtea2027/ab-porro-ullam-sequi@devtea2027/delectus-itaque-placeat-omnis@devtea2027/delectus-cupiditate-provident-itaque@devtea2027/cumque-est-velit-placeat@devtea2027/cupiditate-excepturi-consectetur-asperiores@devtea2027/debitis-voluptatibus-eligendi-in@devtea2027/delectus-amet-sit-iusto@devtea2027/cupiditate-non-explicabo-nostrum@devtea2027/cupiditate-ipsum-reprehenderit-exercitationem@devtea2027/itaque-iste-voluptatum-odio@devtea2027/itaque-quam-facilis-maiores@devtea2027/ipsum-ea-repellendus-fugit@devtea2027/itaque-magnam-architecto-odit@devtea2027/iste-in-quo-ad@devtea2027/quaerat-doloremque-vitae-expedita@devtea2027/porro-molestiae-quod-asperiores@devtea2027/porro-tenetur-voluptas-sapiente@devtea2027/placeat-neque-quis-nemo@devtea2027/quaerat-nobis-incidunt-labore@devtea2027/praesentium-iure-nulla-sint@devtea2027/praesentium-numquam-nihil-ipsam@devtea2027/quae-at-consequuntur-consectetur@devtea2027/quae-nulla-fuga-assumenda@devtea2027/sapiente-iusto-voluptatem-esse@devtea2027/rerum-tempora-recusandae-perferendis@devtea2027/saepe-animi-quis-impedit@devtea2027/sapiente-dolorem-quisquam-ab@devtea2027/sed-ipsam-commodi-qui@devtea2027/assumenda-nemo-omnis-ullam@devtea2027/at-mollitia-incidunt-eius@devtea2027/at-pariatur-cumque-consectetur@devtea2027/atque-nihil-sed-facilis@devtea2027/assumenda-ad-eveniet-praesentium@devtea2027/at-sapiente-iure-minima@devtea2027/doloribus-molestias-deleniti-dolore@devtea2027/doloribus-non-doloribus-beatae@devtea2027/doloribus-repellat-autem-est@devtea2027/dolores-nemo-ipsam-fuga@devtea2027/doloribus-ab-deleniti-ratione@devtea2027/harum-assumenda-fugit-ipsam@devtea2027/exercitationem-unde-reprehenderit-nulla@devtea2027/fuga-culpa-laudantium-ab@devtea2027/fuga-deleniti-fuga-necessitatibus@devtea2027/facere-est-illo-recusandae@devtea2027/facere-odit-fuga-repellat@devtea2027/fuga-a-nihil-impedit@devtea2027/molestias-nemo-minus-reprehenderit@devtea2027/mollitia-vero-eos-labore@devtea2027/mollitia-at-numquam-necessitatibus@devtea2027/molestiae-blanditiis-ut-quo@devtea2027/molestiae-vel-voluptatum-enim@devtea2027/quis-excepturi-reiciendis-assumenda@devtea2027/qui-explicabo-esse-distinctio@devtea2027/quidem-alias-excepturi-perspiciatis@devtea2027/quidem-id-in-perferendis@devtea2027/quidem-id-autem-tempore@devtea2027/quis-aliquam-autem-repellat@devtea2027/quis-saepe-deleniti-occaecati@devtea2027/suscipit-nobis-eum-cumque@devtea2027/suscipit-quos-corrupti-rem@devtea2027/suscipit-cumque-expedita-velit@devtea2027/suscipit-est-molestias-excepturi@devtea2027/soluta-reprehenderit-aperiam-animi@devtea2027/soluta-tenetur-quae-deleniti@devtea2027/aliquid-illum-expedita-fuga@devtea2027/aliquid-nostrum-corporis-consequatur@devtea2027/asperiores-voluptas-aliquam-accusantium@devtea2027/aspernatur-at-voluptatem-architecto@devtea2027/aspernatur-vero-sapiente-similique@devtea2027/dolorem-molestias-eveniet-quam@devtea2027/dolores-assumenda-itaque-soluta@devtea2027/dolore-laboriosam-eligendi-repellendus@devtea2027/ipsa-fuga-nam-ea@devtea2027/hic-fugit-nihil-voluptate@devtea2027/incidunt-ut-possimus-cum@devtea2027/illum-voluptate-aperiam-pariatur@devtea2027/illo-id-odio-necessitatibus@devtea2027/illum-unde-suscipit-totam@devtea2027/ipsum-dicta-id-porro@devtea2027/numquam-tenetur-laborum-itaque@devtea2027/non-necessitatibus-nesciunt-quas@devtea2027/non-sunt-officiis-porro@devtea2027/non-minima-quasi-maxime@devtea2027/nulla-veniam-quia-nisi@devtea2027/quo-placeat-nisi-quae@devtea2027/quod-officiis-odit-cum@devtea2027/quisquam-possimus-excepturi-eaque@devtea2027/quo-tempora-error-quae@devtea2027/quod-eos-nisi-expedita@devtea2027/sint-quos-nihil-expedita@devtea2027/sit-rerum-consequuntur-quia@devtea2027/soluta-laudantium-eos-id@devtea2027/similique-quia-veritatis-repudiandae@devtea2027/similique-accusamus-magnam-deleniti@devtea2027/similique-deleniti-nulla-non@devtea2027/similique-molestias-voluptatibus-adipisci@devtea2027/sequi-hic-enim-quaerat@devtea2027/culpa-adipisci-ad-veritatis
2.1.19

1 day ago

2.1.18

2 days ago

2.1.16

4 days ago

2.1.17

3 days ago

2.1.15

5 days ago

2.1.14

6 days ago

2.1.13

7 days ago

1.1.13

8 days ago

1.1.12

9 days ago

1.1.11

10 days ago

1.1.10

11 days ago

1.1.9

12 days ago

1.1.8

13 days ago

1.1.7

14 days ago

1.1.6

15 days ago

1.1.5

16 days ago

1.0.5

17 days ago

1.0.4

18 days ago

1.0.3

19 days ago

1.0.2

20 days ago

1.0.1

21 days ago

1.0.0

22 days ago