L'objet URL en JavaScript fournit un moyen de travailler et de manipuler facilement les URL. C'est particulièrement utile lorsque vous devez construire, analyser ou modifier des URL dans votre code.
Souvent, des chaînes de modèles sont utilisées pour créer des URL en JavaScript. Cela est souvent assez simple et clair, mais l'objet URL est une méthode POO plus robuste pour traiter les URL.
Même OpenWeatherMap.org utilise des chaînes de modèles dans sa documentation : https://api.openweathermap.org/data/3.0/onecall?lat={lat}&lon={lon}&exclude={part}&appid={clé API >
Pour une URL assez statique, c'est très bien, mais si vous souhaitez apporter des modifications à cette URL, vous pouvez envisager d'utiliser un objet URL.
// Using template strings const lat = 32.087; const lon = 34.801; const apiKey = 'your_api_key'; const url = `https://api.openweathermap.org/data/3.0/onecall?lat=${lat}&lon=${lon}&appid=${apiKey}`; // Using the URL object const openWeatherUrl = new URL('https://api.openweathermap.org/data/3.0/onecall'); openWeatherUrl.searchParams.set('lat', lat); openWeatherUrl.searchParams.set('lon', lon); openWeatherUrl.searchParams.set('appid', apiKey);
Vous pouvez créer un nouvel objet URL en transmettant une chaîne d'URL à son constructeur.
Dans ce cas (contrairement à ci-dessus), l'URL entière est transmise avec différentes parties :
const url = new URL('https://example.com:8080/path?query=123#section');
L'objet URL possède plusieurs propriétés que vous pouvez utiliser pour accéder à des parties de l'URL :
> const url = new URL('https://example.com:8080/path?query=123#section'); > url.port '8080' > url.protocol 'https:' > url.hostname 'example.com' > url.pathname '/path' > url.search '?query=123' > url.hash '#section' > url.host 'example.com:8080'
Ceux-ci peuvent également être utilisés pour modifier les différentes parties de l'URL ?:
> url.port = 1234 1234 > url.pathname = "differentpath" 'differentpath' > url.hostname = "example.org" 'example.org' > url URL { href: 'https://example.org:1234/differentpath?query=123#section', origin: 'https://example.org:1234', protocol: 'https:', username: '', password: '', host: 'example.org:1234', hostname: 'example.org', port: '1234', pathname: '/differentpath', search: '?query=123', searchParams: URLSearchParams { 'query' => '123' }, hash: '#section' }
L'objet URL dispose également de quelques méthodes pour aider à modifier et interagir avec l'URL.
Par exemple, un paramètre de recherche d'URL est une paire clé et valeur qui informe les détails du serveur API pour servir un utilisateur.
url.searchParams : renvoie un objet URLSearchParams, qui fournit des méthodes pour travailler avec les paramètres de chaîne de requête. Vous pouvez :
Obtenir un paramètre de requête : url.searchParams.get('query')
Définissez un paramètre de requête : url.searchParams.set('query', '456')
Supprimer un paramètre de requête : url.searchParams.delete('query')
Itérer sur les paramètres de requête :
url.searchParams.forEach((value, key) => { console.log(key, value); });
toString() : renvoie l'URL complète sous forme de chaîne, reflétant toutes les modifications apportées aux propriétés ou aux paramètres de requête.
Voici la documentation pour OpenWeatherMap : https://openweathermap.org/api/one-call-3
Voici un exemple simple montrant comment créer un objet URL et manipuler ses parties :
// get values to interpolate to URL const apiKey = process.env.openWeatherApiKey || 0 const [lat, lon] = [32.08721095615897, 34.801588162316506] const openWeatherUrl = new URL("https://api.openweathermap.org") openWeatherUrl.pathname = "data/3.0/onecall" openWeatherUrl.searchParams.set('lat',lat) openWeatherUrl.searchParams.set('lon',lon) // from the docs openWeatherUrl.searchParams.set('exclude', 'hourly') openWeatherUrl.searchParams.set('appid', apiKey) console.log(openWeatherUrl)
sortie :
URL { href: 'https://api.openweathermap.org/data/3.0/onecall?lat=32.08721095615897&lon=34.801588162316506&exclude=hourly&appid=0', origin: 'https://api.openweathermap.org', protocol: 'https:', username: '', password: '', host: 'api.openweathermap.org', hostname: 'api.openweathermap.org', port: '', pathname: '/data/3.0/onecall', search: '?lat=32.08721095615897&lon=34.801588162316506&exclude=hourly&appid=0', searchParams: URLSearchParams { 'lat' => '32.08721095615897', 'lon' => '34.801588162316506', 'exclude' => 'hourly', 'appid' => '0' }, hash: '' }
L'objet URL en JavaScript fournit une manière structurée de travailler avec les URL, permettant une manipulation et une construction faciles d'URL complexes. Alors que les chaînes de modèles sont simples et efficaces pour les URL statiques, les objets URL sont idéaux pour les cas où les URL sont dynamiques ou nécessitent des modifications fréquentes.
Photo d'Anne Nygård sur Unsplash
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!