Mock IMDB apis are available for free. Sample Angular 11 movie-app w/ IMDB api

Aditya Naidu
5 min readMar 27, 2021

--

Demo and walk-through of all the steps to implement in the video below

IMDB data is real-time and apis need to be bought via AWS Marketplace. Or there are support plans to consume via RapiApi.

(which btw have only 2 endpoints and require to enter your credit/debit card).

My suggestion is why do that if you have multiple endpoints for free.

It does not mean we cannot build Sample Movie applications using valid data if not real-time. Why should we miss out on the workflow learning of how Browsing Movies works. Let it be on Any device.

IMDB apis are available for Both Client and Server sdk implementation on (https://imdb-api.com/). Free registration and consume the related apis.

Below is a walk-through on how to use it in a Angular 11 app. With Keeping it simple AG-grid for filtering, sorting, styling and the works. Also a tutorial on faker and lodash for all those who prefer mock-data over live test-samples.

Step 1: Register at imdb-api.com

The site is sometimes inaccessible without accepting cookies and Login is Mandatory for an api-key.

Step 1 a: After registration test the apis with the key visible. Test the apis you want to run

The site has api documentation

For example I need NOW SHOWING for my web app home page. So I will look at InTheatres() Api. (Demo available in video above)

It looks something like this :-

https://imdb-api.com/en/API/InTheaters/(API_KEY}

Where API_KEY is where you will have see your own on registration.

Step 2 : Sample Angular Application from scratch

Include the imdb api in server using http client

To save time run the following commands to create a new Angular Application.

ng new movies-app -p mov — routing true — skip-git true — skip-install true -S true — strict true — style scss — dry-run

dry-run along with skip-install and — strict are the most useful CLI options for ng new.

Explanation as to Why these ng new options?

— dry-run Run through and reports activity without writing out results. Aliases: -d boolean false

— prefix The prefix to apply to generated selectors for the initial project. Aliases: -p string app

— routing Generate a routing module for the initial project.

boolean — skip-git Do not initialize a git repository. Aliases: -g boolean false

— skip-install Do not install dependency packages. boolean false

skip-tests Do not generate “spec.ts” test files for the new project. Aliases: -S boolean false

strict Creates a workspace with stricter type checking and stricter bundle budgets settings. This setting helps improve maintainability and catch bugs ahead of time. For more information, see https://angular.io/guide/strict-mode boolean false

style The file extension or preprocessor to use for style files. css|scss|sass|less|styl

— create-application Create a new initial application project in the ‘src’ folder of the new workspace. When false, creates an empty workspace with no initial application. You can then use the generate application command so that all applications are created in the projects folder. boolean true

— defaults Disable interactive input prompts for options with a default.

boolean reference from https://angular.io/cli/new

On running the above command output should look something like this

Now lets run the code without — dryRun option

ng new movies-app -p mov — routing true — skip-git true — skip-install true -S true — strict true — style scss

You should see the new Angular App. With Default App Component.

Step 2 a: Create 2 components; one called HOME and the other called ABOUT by the below commands

ng g c home

ng g c about

Run the above commands one at a time.

Include routing for ABOUT and HOME Components from app.routing.ts . Something like this

Step 2 b. Include AG-GRID to display NOW Showing Content from IMDB website. Examples available at

https://www.ag-grid.com/angular-grid/getting-started

Working examples available at Stackbliz

ag-grid with imdb data

Output:

https://movies-app-ag-grid-imdb-api.stackblitz.io

Step 3 : Install json server for fakes and 100 records of mock data

npm i — save json-server

npm i faker lodash

installing json-server, faker and lodash using npm install

cd movies-app

now create a folder named server and a .js file named generate.js

It should look something like this

Code explanation is given in the video above.

lets see if the faker is running with definition we defined.

To make it consistent with the project. Make changes to package.json

Something like this

Now all we need to do is run the server and see if the data is available for the frontend

npm run generate

Open REST Client to test

Something like this

Now that fake data is available you can move to Designing your angular application.

So getting started with an angular app is that simple. Some if not most devs prefer to get mock data or faker ready first and then angular ui finally work on live data.

In such a case do steps 3, 2 and then 1. In that way e2e and unit tests need not wait.

Conclusion is that any angular app does not take more than 30 mins IMHO. Unless of course you have complex UI and highly observable State management included with your app.

HTTPClient, RxJS, NgRx and finally docker to be covered in the next blog for Angular 11.

Stay tuned for .NET 5 REST Api to interact with Angular removing CORS errors which will be after that.

And finally dockerizing and containerizing both these apps to interact via a Network bridge on Linux/Windows.

Until next time..

--

--

Aditya Naidu

Have been working as a Techie for the past 15 years and excellence in domains such as IoT 4.0, BFSI, Telecom, e-com and more recently AI.