Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update api-rest-example to SSG #11362

Merged
merged 5 commits into from Mar 28, 2020
Merged

Update api-rest-example to SSG #11362

merged 5 commits into from Mar 28, 2020

Conversation

jazibjafri
Copy link
Contributor

Related to #11014

@ijjk
Copy link
Member

ijjk commented Mar 26, 2020

Stats from current PR

Default Server Mode
General
zeit/next.js canary JazibJafri/next.js update-api-rest Change
buildDuration 10.9s 11s ⚠️ +87ms
nodeModulesSize 53 MB 53 MB
Client Bundles (main, webpack, commons)
zeit/next.js canary JazibJafri/next.js update-api-rest Change
main-HASH.js gzip 6.24 kB 6.24 kB
webpack-HASH.js gzip 746 B 746 B
de003c3a9d30..c6c1.js gzip 10.1 kB 10.1 kB
framework.HASH.js gzip 39.1 kB 39.1 kB
Overall change 56.2 kB 56.2 kB
Client Bundles (main, webpack, commons) Modern
zeit/next.js canary JazibJafri/next.js update-api-rest Change
main-HASH.module.js gzip 4.78 kB 4.78 kB
webpack-HASH..dule.js gzip 746 B 746 B
de003c3a9d30..dule.js gzip 6.71 kB 6.71 kB
framework.HA..dule.js gzip 39.1 kB 39.1 kB
Overall change 51.4 kB 51.4 kB
Legacy Client Bundles (polyfills)
zeit/next.js canary JazibJafri/next.js update-api-rest Change
polyfills-HASH.js gzip 26.3 kB 26.3 kB
Overall change 26.3 kB 26.3 kB
Client Pages
zeit/next.js canary JazibJafri/next.js update-api-rest Change
_app.js gzip 1.24 kB 1.24 kB
_error.js gzip 3.15 kB 3.15 kB
hooks.js gzip 664 B 664 B
index.js gzip 222 B 222 B
link.js gzip 2.03 kB 2.03 kB
routerDirect.js gzip 279 B 279 B
withRouter.js gzip 278 B 278 B
Overall change 7.86 kB 7.86 kB
Client Pages Modern
zeit/next.js canary JazibJafri/next.js update-api-rest Change
_app.module.js gzip 594 B 594 B
_error.module.js gzip 2.08 kB 2.08 kB
hooks.module.js gzip 370 B 370 B
index.module.js gzip 212 B 212 B
link.module.js gzip 1.48 kB 1.48 kB
routerDirect..dule.js gzip 271 B 271 B
withRouter.m..dule.js gzip 270 B 270 B
Overall change 5.28 kB 5.28 kB
Client Build Manifests
zeit/next.js canary JazibJafri/next.js update-api-rest Change
_buildManifest.js gzip 61 B 61 B
_buildManife..dule.js gzip 61 B 61 B
Overall change 122 B 122 B
Rendered Page Sizes
zeit/next.js canary JazibJafri/next.js update-api-rest Change
index.html gzip 918 B 918 B
link.html gzip 926 B 926 B
withRouter.html gzip 914 B 914 B
Overall change 2.76 kB 2.76 kB

Serverless Mode (Increase detected ⚠️)
General
zeit/next.js canary JazibJafri/next.js update-api-rest Change
buildDuration 11.7s 11.7s ⚠️ +88ms
nodeModulesSize 53 MB 53 MB
Client Bundles (main, webpack, commons)
zeit/next.js canary JazibJafri/next.js update-api-rest Change
main-HASH.js gzip 6.24 kB 6.24 kB
webpack-HASH.js gzip 746 B 746 B
de003c3a9d30..c6c1.js gzip 10.1 kB 10.1 kB
framework.HASH.js gzip 39.1 kB 39.1 kB
Overall change 56.2 kB 56.2 kB
Client Bundles (main, webpack, commons) Modern
zeit/next.js canary JazibJafri/next.js update-api-rest Change
main-HASH.module.js gzip 4.78 kB 4.78 kB
webpack-HASH..dule.js gzip 746 B 746 B
de003c3a9d30..dule.js gzip 6.71 kB 6.71 kB
framework.HA..dule.js gzip 39.1 kB 39.1 kB
Overall change 51.4 kB 51.4 kB
Legacy Client Bundles (polyfills)
zeit/next.js canary JazibJafri/next.js update-api-rest Change
polyfills-HASH.js gzip 26.3 kB 26.3 kB
Overall change 26.3 kB 26.3 kB
Client Pages
zeit/next.js canary JazibJafri/next.js update-api-rest Change
_app.js gzip 1.24 kB 1.24 kB
_error.js gzip 3.15 kB 3.15 kB
hooks.js gzip 664 B 664 B
index.js gzip 222 B 222 B
link.js gzip 2.03 kB 2.03 kB
routerDirect.js gzip 279 B 279 B
withRouter.js gzip 278 B 278 B
Overall change 7.86 kB 7.86 kB
Client Pages Modern
zeit/next.js canary JazibJafri/next.js update-api-rest Change
_app.module.js gzip 594 B 594 B
_error.module.js gzip 2.08 kB 2.08 kB
hooks.module.js gzip 370 B 370 B
index.module.js gzip 212 B 212 B
link.module.js gzip 1.48 kB 1.48 kB
routerDirect..dule.js gzip 271 B 271 B
withRouter.m..dule.js gzip 270 B 270 B
Overall change 5.28 kB 5.28 kB
Client Build Manifests
zeit/next.js canary JazibJafri/next.js update-api-rest Change
_buildManifest.js gzip 61 B 61 B
_buildManife..dule.js gzip 61 B 61 B
Overall change 122 B 122 B
Serverless bundles Overall increase ⚠️
zeit/next.js canary JazibJafri/next.js update-api-rest Change
_error.js gzip 294 kB 293 kB -53 B
404.html gzip 1.32 kB 1.32 kB
hooks.html gzip 957 B 957 B
index.js gzip 294 kB 294 kB ⚠️ +2 B
link.js gzip 302 kB 302 kB -3 B
routerDirect.js gzip 300 kB 300 kB ⚠️ +390 B
withRouter.js gzip 300 kB 300 kB ⚠️ +39 B
Overall change 1.49 MB 1.49 MB ⚠️ +375 B

@ijjk
Copy link
Member

ijjk commented Mar 26, 2020

Stats from current PR

Default Server Mode
General
zeit/next.js canary JazibJafri/next.js update-api-rest Change
buildDuration 12.2s 11.9s -293ms
nodeModulesSize 53 MB 53 MB
Client Bundles (main, webpack, commons)
zeit/next.js canary JazibJafri/next.js update-api-rest Change
main-HASH.js gzip 6.24 kB 6.24 kB
webpack-HASH.js gzip 746 B 746 B
de003c3a9d30..c6c1.js gzip 10.1 kB 10.1 kB
framework.HASH.js gzip 39.1 kB 39.1 kB
Overall change 56.2 kB 56.2 kB
Client Bundles (main, webpack, commons) Modern
zeit/next.js canary JazibJafri/next.js update-api-rest Change
main-HASH.module.js gzip 4.78 kB 4.78 kB
webpack-HASH..dule.js gzip 746 B 746 B
de003c3a9d30..dule.js gzip 6.71 kB 6.71 kB
framework.HA..dule.js gzip 39.1 kB 39.1 kB
Overall change 51.4 kB 51.4 kB
Legacy Client Bundles (polyfills)
zeit/next.js canary JazibJafri/next.js update-api-rest Change
polyfills-HASH.js gzip 26.3 kB 26.3 kB
Overall change 26.3 kB 26.3 kB
Client Pages
zeit/next.js canary JazibJafri/next.js update-api-rest Change
_app.js gzip 1.24 kB 1.24 kB
_error.js gzip 3.15 kB 3.15 kB
hooks.js gzip 664 B 664 B
index.js gzip 222 B 222 B
link.js gzip 2.03 kB 2.03 kB
routerDirect.js gzip 279 B 279 B
withRouter.js gzip 278 B 278 B
Overall change 7.86 kB 7.86 kB
Client Pages Modern
zeit/next.js canary JazibJafri/next.js update-api-rest Change
_app.module.js gzip 594 B 594 B
_error.module.js gzip 2.08 kB 2.08 kB
hooks.module.js gzip 370 B 370 B
index.module.js gzip 212 B 212 B
link.module.js gzip 1.48 kB 1.48 kB
routerDirect..dule.js gzip 271 B 271 B
withRouter.m..dule.js gzip 270 B 270 B
Overall change 5.28 kB 5.28 kB
Client Build Manifests
zeit/next.js canary JazibJafri/next.js update-api-rest Change
_buildManifest.js gzip 61 B 61 B
_buildManife..dule.js gzip 61 B 61 B
Overall change 122 B 122 B
Rendered Page Sizes
zeit/next.js canary JazibJafri/next.js update-api-rest Change
index.html gzip 918 B 918 B
link.html gzip 926 B 926 B
withRouter.html gzip 914 B 914 B
Overall change 2.76 kB 2.76 kB

Serverless Mode (Increase detected ⚠️)
General
zeit/next.js canary JazibJafri/next.js update-api-rest Change
buildDuration 12.2s 12.4s ⚠️ +114ms
nodeModulesSize 53 MB 53 MB
Client Bundles (main, webpack, commons)
zeit/next.js canary JazibJafri/next.js update-api-rest Change
main-HASH.js gzip 6.24 kB 6.24 kB
webpack-HASH.js gzip 746 B 746 B
de003c3a9d30..c6c1.js gzip 10.1 kB 10.1 kB
framework.HASH.js gzip 39.1 kB 39.1 kB
Overall change 56.2 kB 56.2 kB
Client Bundles (main, webpack, commons) Modern
zeit/next.js canary JazibJafri/next.js update-api-rest Change
main-HASH.module.js gzip 4.78 kB 4.78 kB
webpack-HASH..dule.js gzip 746 B 746 B
de003c3a9d30..dule.js gzip 6.71 kB 6.71 kB
framework.HA..dule.js gzip 39.1 kB 39.1 kB
Overall change 51.4 kB 51.4 kB
Legacy Client Bundles (polyfills)
zeit/next.js canary JazibJafri/next.js update-api-rest Change
polyfills-HASH.js gzip 26.3 kB 26.3 kB
Overall change 26.3 kB 26.3 kB
Client Pages
zeit/next.js canary JazibJafri/next.js update-api-rest Change
_app.js gzip 1.24 kB 1.24 kB
_error.js gzip 3.15 kB 3.15 kB
hooks.js gzip 664 B 664 B
index.js gzip 222 B 222 B
link.js gzip 2.03 kB 2.03 kB
routerDirect.js gzip 279 B 279 B
withRouter.js gzip 278 B 278 B
Overall change 7.86 kB 7.86 kB
Client Pages Modern
zeit/next.js canary JazibJafri/next.js update-api-rest Change
_app.module.js gzip 594 B 594 B
_error.module.js gzip 2.08 kB 2.08 kB
hooks.module.js gzip 370 B 370 B
index.module.js gzip 212 B 212 B
link.module.js gzip 1.48 kB 1.48 kB
routerDirect..dule.js gzip 271 B 271 B
withRouter.m..dule.js gzip 270 B 270 B
Overall change 5.28 kB 5.28 kB
Client Build Manifests
zeit/next.js canary JazibJafri/next.js update-api-rest Change
_buildManifest.js gzip 61 B 61 B
_buildManife..dule.js gzip 61 B 61 B
Overall change 122 B 122 B
Serverless bundles Overall increase ⚠️
zeit/next.js canary JazibJafri/next.js update-api-rest Change
_error.js gzip 294 kB 293 kB -757 B
404.html gzip 1.32 kB 1.32 kB
hooks.html gzip 957 B 957 B
index.js gzip 293 kB 293 kB ⚠️ +115 B
link.js gzip 301 kB 301 kB -69 B
routerDirect.js gzip 299 kB 300 kB ⚠️ +764 B
withRouter.js gzip 300 kB 300 kB -35 B
Overall change 1.49 MB 1.49 MB ⚠️ +18 B

@lfades
Copy link
Member

lfades commented Mar 26, 2020

Hi @jazibjafri Thank you for the PR, can you change it to use SWR instead of using SSG/SSR 🙏 . Reason for this is that SSG methods don't need to access the local API endpoints, because they can handle the db directly. And because the example is about API routes, then better to do client side data fetching to the API with SWR instead.

@jazibjafri
Copy link
Contributor Author

Yeah I'll do it. I'm learning so much about next.js. Thank you!

@jazibjafri
Copy link
Contributor Author

Also can you point me to an example with swr, so I can do it correctly.

@lfades
Copy link
Member

lfades commented Mar 26, 2020

You can use the examples they have in their Quick Start, you can add a very simple loading state and point to the relative URL of the API endpoint just like they're doing there.

@lfades
Copy link
Member

lfades commented Mar 26, 2020

@jazibjafri You can use this PR I created to update a similar example as reference: https://github.com/zeit/next.js/pull/11383/files

@ijjk
Copy link
Member

ijjk commented Mar 27, 2020

Stats from current PR

Default Server Mode
General
zeit/next.js canary JazibJafri/next.js update-api-rest Change
buildDuration 10.6s 10.8s ⚠️ +184ms
nodeModulesSize 53.1 MB 53.1 MB
Client Bundles (main, webpack, commons)
zeit/next.js canary JazibJafri/next.js update-api-rest Change
main-HASH.js gzip 6.24 kB 6.24 kB
webpack-HASH.js gzip 746 B 746 B
de003c3a9d30..c6c1.js gzip 10.1 kB 10.1 kB
framework.HASH.js gzip 39.1 kB 39.1 kB
Overall change 56.2 kB 56.2 kB
Client Bundles (main, webpack, commons) Modern
zeit/next.js canary JazibJafri/next.js update-api-rest Change
main-HASH.module.js gzip 4.77 kB 4.77 kB
webpack-HASH..dule.js gzip 746 B 746 B
de003c3a9d30..dule.js gzip 6.71 kB 6.71 kB
framework.HA..dule.js gzip 39.1 kB 39.1 kB
Overall change 51.4 kB 51.4 kB
Legacy Client Bundles (polyfills)
zeit/next.js canary JazibJafri/next.js update-api-rest Change
polyfills-HASH.js gzip 26.3 kB 26.3 kB
Overall change 26.3 kB 26.3 kB
Client Pages
zeit/next.js canary JazibJafri/next.js update-api-rest Change
_app.js gzip 1.24 kB 1.24 kB
_error.js gzip 3.15 kB 3.15 kB
hooks.js gzip 664 B 664 B
index.js gzip 222 B 222 B
link.js gzip 2.03 kB 2.03 kB
routerDirect.js gzip 279 B 279 B
withRouter.js gzip 278 B 278 B
Overall change 7.86 kB 7.86 kB
Client Pages Modern
zeit/next.js canary JazibJafri/next.js update-api-rest Change
_app.module.js gzip 594 B 594 B
_error.module.js gzip 2.08 kB 2.08 kB
hooks.module.js gzip 370 B 370 B
index.module.js gzip 212 B 212 B
link.module.js gzip 1.48 kB 1.48 kB
routerDirect..dule.js gzip 271 B 271 B
withRouter.m..dule.js gzip 270 B 270 B
Overall change 5.28 kB 5.28 kB
Client Build Manifests
zeit/next.js canary JazibJafri/next.js update-api-rest Change
_buildManifest.js gzip 61 B 61 B
_buildManife..dule.js gzip 61 B 61 B
Overall change 122 B 122 B
Rendered Page Sizes
zeit/next.js canary JazibJafri/next.js update-api-rest Change
index.html gzip 917 B 917 B
link.html gzip 925 B 925 B
withRouter.html gzip 915 B 915 B
Overall change 2.76 kB 2.76 kB

Serverless Mode (Increase detected ⚠️)
General
zeit/next.js canary JazibJafri/next.js update-api-rest Change
buildDuration 11.6s 11.8s ⚠️ +180ms
nodeModulesSize 53.1 MB 53.1 MB
Client Bundles (main, webpack, commons)
zeit/next.js canary JazibJafri/next.js update-api-rest Change
main-HASH.js gzip 6.24 kB 6.24 kB
webpack-HASH.js gzip 746 B 746 B
de003c3a9d30..c6c1.js gzip 10.1 kB 10.1 kB
framework.HASH.js gzip 39.1 kB 39.1 kB
Overall change 56.2 kB 56.2 kB
Client Bundles (main, webpack, commons) Modern
zeit/next.js canary JazibJafri/next.js update-api-rest Change
main-HASH.module.js gzip 4.77 kB 4.77 kB
webpack-HASH..dule.js gzip 746 B 746 B
de003c3a9d30..dule.js gzip 6.71 kB 6.71 kB
framework.HA..dule.js gzip 39.1 kB 39.1 kB
Overall change 51.4 kB 51.4 kB
Legacy Client Bundles (polyfills)
zeit/next.js canary JazibJafri/next.js update-api-rest Change
polyfills-HASH.js gzip 26.3 kB 26.3 kB
Overall change 26.3 kB 26.3 kB
Client Pages
zeit/next.js canary JazibJafri/next.js update-api-rest Change
_app.js gzip 1.24 kB 1.24 kB
_error.js gzip 3.15 kB 3.15 kB
hooks.js gzip 664 B 664 B
index.js gzip 222 B 222 B
link.js gzip 2.03 kB 2.03 kB
routerDirect.js gzip 279 B 279 B
withRouter.js gzip 278 B 278 B
Overall change 7.86 kB 7.86 kB
Client Pages Modern
zeit/next.js canary JazibJafri/next.js update-api-rest Change
_app.module.js gzip 594 B 594 B
_error.module.js gzip 2.08 kB 2.08 kB
hooks.module.js gzip 370 B 370 B
index.module.js gzip 212 B 212 B
link.module.js gzip 1.48 kB 1.48 kB
routerDirect..dule.js gzip 271 B 271 B
withRouter.m..dule.js gzip 270 B 270 B
Overall change 5.28 kB 5.28 kB
Client Build Manifests
zeit/next.js canary JazibJafri/next.js update-api-rest Change
_buildManifest.js gzip 61 B 61 B
_buildManife..dule.js gzip 61 B 61 B
Overall change 122 B 122 B
Serverless bundles Overall increase ⚠️
zeit/next.js canary JazibJafri/next.js update-api-rest Change
_error.js gzip 294 kB 294 kB -73 B
404.html gzip 1.32 kB 1.32 kB
hooks.html gzip 958 B 958 B
index.js gzip 293 kB 294 kB ⚠️ +570 B
link.js gzip 301 kB 302 kB ⚠️ +823 B
routerDirect.js gzip 301 kB 300 kB -114 B
withRouter.js gzip 300 kB 300 kB ⚠️ +302 B
Overall change 1.49 MB 1.49 MB ⚠️ +1.51 kB

Copy link
Member

@lfades lfades left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@jazibjafri Thank you!

@lfades lfades merged commit 9e2ae69 into vercel:canary Mar 28, 2020
@jazibjafri
Copy link
Contributor Author

Thanks alot man, can I ask why do you prefer promise over async/await, and is withRouter not recommended?

@lfades
Copy link
Member

lfades commented Mar 28, 2020

  • Because the fetcher is one line and still very simple to understand, which is ideal for examples.
  • withRouter is recommended, but usually Hooks are preferred.

@jazibjafri
Copy link
Contributor Author

Nice, thanks alot.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants