Swiftpack.co - Package - nodes-vapor/n-meta

N-Meta Ⓜ️

Swift Version Vapor Version Circle CI codebeat badge codecov Readme Score GitHub license

This package enforces clients to send a specific header in all requests:

NMeta: [PLATFORM];[ENVIRONMENT];[APP_VERSION];[DEVICE_OS];[DEVICE]

If you're running an older version of Vapor then have a look here:

This header can look like this android;production;1.2.3;4.4;Samsung S7

  • platform
  • environment
  • app version
  • device os
  • device

For web platform only platform and environment is required, since the rest can be found in User-Agent.

Why not just use User-Agent?

  • User-Agent is missing some of these details
  • User-Agent can be hard to extend/override
  • Default User-Agent in iOS & Android can be their client (OkHttp, Alamofire etc).

📦 Installation

Update your Package.swift file.

.package(url: "https://github.com/nodes-vapor/n-meta.git", from: "3.0.0-beta")

Getting started 🚀

Register the provider in configure.swift:

import NMeta
try services.register(NMetaProvider())

You can supply your own NMetaConfig to the provider if needed.

Next, add the middleware directly to your routes:

router.grouped(NMetaMiddleware()).get("hello") { req in
    return "Hello, world!"
}

or add the middleware globally (e.g. in configure.swift) which will add it to all routes:

middlewares.use(NMetaMiddleware.self)

🏆 Credits

This package is developed and maintained by the Vapor team at Nodes. The package owner for this project is Steffen.

📄 License

This package is open-sourced software licensed under the MIT license

Github

link
Stars: 10
Help us keep the lights on

Dependencies

Releases

3.0.0-beta.2 - May 14, 2018

Fixed

  • An issue where you couldn't add NMetaMiddleware since the service wasn't registered.

3.0.0-beta.1 - May 14, 2018

Changed

  • Added support for Vapor 3 🎉

2.0.0 - Aug 23, 2017

Changed

  • Refactored some parts a bit to make the responsibility of some types more clear
  • Made it possible to properly add this as a middleware in Vapor 2 (sorry for not noticing this before now)

1.0.0 - May 18, 2017

  • Vapor 2 released 🎉

1.0.0-beta1 - Apr 28, 2017

  • Updated for Vapor 2