-
Notifications
You must be signed in to change notification settings - Fork 26.8k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
docs: improve docs around geolocation and IP headers (#59719)
Based on feedback from #47793, I made some improvements around the geolocation docs. Specifically around `request.ip`, `request.geo`, and how to access these values. I noticed there was a bit of a divergence, as some of the `NextRequest` and `NextResponse` docs were split out for the App Router section, but not all. This PR finishes that swing by removing the previous catch-all for `next/server` in the Pages Router docs and splits them into individual docs pages. Wrote a lil' thread about this: https://twitter.com/leeerob/status/1736543599339172121 --------- Co-authored-by: Delba de Oliveira <32464864+delbaoliveira@users.noreply.github.com>
- Loading branch information
1 parent
e3c2552
commit 1c65c55
Showing
14 changed files
with
267 additions
and
186 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
3 changes: 3 additions & 0 deletions
3
docs/02-app/02-api-reference/04-functions/permanentRedirect.mdx
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,71 @@ | ||
--- | ||
title: userAgent | ||
description: The userAgent helper extends the Web Request API with additional properties and methods to interact with the user agent object from the request. | ||
--- | ||
|
||
{/* The content of this doc is shared between the app and pages router. You can use the `<PagesOnly>Content</PagesOnly>` component to add content that is specific to the Pages Router. Any shared content should not be wrapped in a component. */} | ||
|
||
The `userAgent` helper extends the [Web Request API](https://developer.mozilla.org/docs/Web/API/Request) with additional properties and methods to interact with the user agent object from the request. | ||
|
||
```ts filename="middleware.ts" switcher | ||
import { NextRequest, NextResponse, userAgent } from 'next/server' | ||
|
||
export function middleware(request: NextRequest) { | ||
const url = request.nextUrl | ||
const { device } = userAgent(request) | ||
const viewport = device.type === 'mobile' ? 'mobile' : 'desktop' | ||
url.searchParams.set('viewport', viewport) | ||
return NextResponse.rewrite(url) | ||
} | ||
``` | ||
|
||
```js filename="middleware.js" switcher | ||
import { NextResponse, userAgent } from 'next/server' | ||
|
||
export function middleware(request) { | ||
const url = request.nextUrl | ||
const { device } = userAgent(request) | ||
const viewport = device.type === 'mobile' ? 'mobile' : 'desktop' | ||
url.searchParams.set('viewport', viewport) | ||
return NextResponse.rewrite(url) | ||
} | ||
``` | ||
|
||
## `isBot` | ||
|
||
A boolean indicating whether the request comes from a known bot. | ||
|
||
## `browser` | ||
|
||
An object containing information about the browser used in the request. | ||
|
||
- `name`: A string representing the browser's name, or `undefined` if not identifiable. | ||
- `version`: A string representing the browser's version, or `undefined`. | ||
|
||
## `device` | ||
|
||
An object containing information about the device used in the request. | ||
|
||
- `model`: A string representing the model of the device, or `undefined`. | ||
- `type`: A string representing the type of the device, such as `console`, `mobile`, `tablet`, `smarttv`, `wearable`, `embedded`, or `undefined`. | ||
- `vendor`: A string representing the vendor of the device, or `undefined`. | ||
|
||
## `engine` | ||
|
||
An object containing information about the browser's engine. | ||
|
||
- `name`: A string representing the engine's name. Possible values include: `Amaya`, `Blink`, `EdgeHTML`, `Flow`, `Gecko`, `Goanna`, `iCab`, `KHTML`, `Links`, `Lynx`, `NetFront`, `NetSurf`, `Presto`, `Tasman`, `Trident`, `w3m`, `WebKit` or `undefined`. | ||
- `version`: A string representing the engine's version, or `undefined`. | ||
|
||
## `os` | ||
|
||
An object containing information about the operating system. | ||
|
||
- `name`: A string representing the name of the OS, or `undefined`. | ||
- `version`: A string representing the version of the OS, or `undefined`. | ||
|
||
## `cpu` | ||
|
||
An object containing information about the CPU architecture. | ||
|
||
- `architecture`: A string representing the architecture of the CPU. Possible values include: `68k`, `amd64`, `arm`, `arm64`, `armhf`, `avr`, `ia32`, `ia64`, `irix`, `irix64`, `mips`, `mips64`, `pa-risc`, `ppc`, `sparc`, `sparc64` or `undefined` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
--- | ||
title: NextRequest | ||
description: API Reference for NextRequest. | ||
source: app/api-reference/functions/next-request | ||
--- | ||
|
||
{/* DO NOT EDIT. The content of this doc is generated from the source above. To edit the content of this page, navigate to the source page in your editor. You can use the `<PagesOnly>Content</PagesOnly>` component to add content that is specific to the Pages Router. Any shared content should not be wrapped in a component. */} |
7 changes: 7 additions & 0 deletions
7
docs/03-pages/02-api-reference/02-functions/next-response.mdx
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
--- | ||
title: NextResponse | ||
description: API Reference for NextResponse. | ||
source: app/api-reference/functions/next-response | ||
--- | ||
|
||
{/* DO NOT EDIT. The content of this doc is generated from the source above. To edit the content of this page, navigate to the source page in your editor. You can use the `<PagesOnly>Content</PagesOnly>` component to add content that is specific to the Pages Router. Any shared content should not be wrapped in a component. */} |
Oops, something went wrong.