N-Ways
Documentation développeursBibliothèques clientes

Bibliothèques clientes et Postman

Appelez chaque API N-Ways depuis votre langage avec un client généré, ou essayez-les d’abord dans Postman.

Sur cette page
Remarque :

Sur npm : npm install @nways/client. Le client JavaScript et TypeScript est publié (Apache-2.0) ; les clients sont générés à partir de nos fichiers OpenAPI, puis compilés et testés à chaque version. Python, Kotlin et Swift ne sont pas encore sur PyPI, Maven Central ni Swift Package Index : en attendant, demandez-nous le code source à hello@nways.ng, ou générez votre propre client à partir des fichiers OpenAPI.

Ce qui est disponible

LangagePaquetFonctionne surDépendances
JavaScript et TypeScript@nways/client (npm)Navigateurs, Node 18+, Deno, BunAucune (utilise fetch)
Pythonnways-maps (depuis le code source)Python 3.8+Aucune (la bibliothèque standard)
Kotlinng.nways:client (depuis le code source)JVM 17+, Androidkotlinx.serialization
SwiftNWaysClient (paquet Swift, depuis le code source)iOS 15+, macOS 12+Aucune (Foundation)

Chacune a une méthode par opération de l’API, nommée comme dans la référence de l’API, envoie votre clé dans l’en-tête X-NWays-Api-Key, et transforme les réponses d’erreur en une erreur qui contient le statut HTTP, la reason (API_KEY_HTTP_REFERRER_BLOCKED, RATE_LIMIT_EXCEEDED…) et le nombre de secondes Retry-After. Pour les cartes dans les pages web et les applications, utilisez les SDK Maps web, Android et iOS, qui incluent les mêmes appels.

Exemples

TypeScript
import { NWaysClient, ApiError } from '@nways/client'

const nways = new NWaysClient({ apiKey: process.env.NWAYS_API_KEY! })
try {
  const { results } = await nways.geocode({ q: 'Allen Avenue, Ikeja', limit: 3 })
  console.log(results[0]?.name, results[0]?.location.coordinates)
} catch (e) {
  if (e instanceof ApiError && e.status === 429) console.log(`Réessayer dans ${e.retryAfter} s`)
  else throw e
}
Python
import os
from nways_maps import ApiError, Client

nways = Client(api_key=os.environ["NWAYS_API_KEY"])
try:
    answer = nways.geocode(q="Allen Avenue, Ikeja", limit=3)
    print(answer["results"][0]["name"])
except ApiError as e:
    print(e.status, e.reason, e.retry_after)
Kotlin
import ng.nways.client.ApiError
import ng.nways.client.NWaysClient

val nways = NWaysClient(apiKey = System.getenv("NWAYS_API_KEY"))
// Les appels sont bloquants : dans une application, lancez-les sur Dispatchers.IO.
try {
    val answer = nways.geocode(q = "Allen Avenue, Ikeja", limit = 3)
    println(answer.results.firstOrNull()?.name)
} catch (e: ApiError) {
    println("${e.status} ${e.reason}")
}
Swift
import NWaysClient

let nways = NWaysClient(apiKey: "VOTRE_CLE_API")
do {
    let answer = try await nways.geocode(q: "Allen Avenue, Ikeja", limit: 3)
    print(answer.results.first?.name ?? "aucun résultat")
} catch let e as NWaysError {
    print(e.status, e.reason ?? "", e.message)
}
Attention :

Une clé de serveur, restreinte aux adresses IP de vos serveurs, ne doit jamais être mise dans une page web ou une application mobile. Dans les applications, utilisez une clé restreinte à l’application (package Android et SHA-1, ou bundle ID iOS) ; les SDK Maps les envoient pour vous.

Postman

Essayez chaque requête sans écrire de code :

  1. Téléchargez la collection N-Ways Maps Platform.
  2. Dans Postman, choisissez Import et sélectionnez le fichier.
  3. Dans les Variables de la collection, donnez à apiKey une clé restreinte à l’adresse IP de votre ordinateur. baseUrl vaut https://nways.ng.
  4. Ouvrez une requête et appuyez sur Send.

Cela fonctionne aussi dans Insomnia, Bruno et les autres outils qui importent les collections Postman ou les fichiers OpenAPI.

Fichiers OpenAPI

La référence de l’API, les bibliothèques clientes et la collection Postman sont toutes produites à partir de deux fichiers OpenAPI 3.1, que vous pouvez utiliser avec n’importe quel outil OpenAPI pour générer un client dans un autre langage, simuler l’API dans vos tests ou valider des requêtes :

Versions

Les bibliothèques clientes suivent l’API : la version 1 d’un client appelle la version 1 de l’API (/maps/v1), et ne fait qu’y gagner des méthodes et des champs. Les types générés acceptent les champs qu’ils ne connaissent pas encore, si bien qu’une API plus récente ne casse jamais un client plus ancien. Comment fonctionnent les versions

Licence

Les quatre bibliothèques clientes sont open source sous licence Apache 2.0 (Apache-2.0), Copyright 2026 N-WAYS LIMITED ; chaque paquet contient ses fichiers LICENSE et NOTICE. La licence couvre uniquement le code : les cartes et les données de N-Ways restent © les contributeurs d’OpenStreetMap sous l’Open Database Licence (ODbL), avec la mention affichée partout où elles apparaissent.