Swiftpack.co - Package -

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:


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:


🏆 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