40 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
		
		
			
		
	
	
			40 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| 
								 | 
							
								## JSON Ingestion Examples
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								The data is pulled from https://jsonplaceholder.typicode.com/
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								### Approach 1: Migrate API
							 | 
						||
| 
								 | 
							
								#### Requirements
							 | 
						||
| 
								 | 
							
								- Migrate
							 | 
						||
| 
								 | 
							
								- Migrate Plus
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								There are 2 migrations:
							 | 
						||
| 
								 | 
							
								 - images (5000 total)
							 | 
						||
| 
								 | 
							
								 - json_posts_to_posts (100 total)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								To run them you can do:
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								drush mim images --limit=100
							 | 
						||
| 
								 | 
							
								drush mim json_posts_to_posts
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								there are only 100 posts, so for our purposes we don't need more than 100 images.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Once both migrations have been run you can see the data at `/migration-posts` which is controller by a view.
							 | 
						||
| 
								 | 
							
								This approach has the advantage of requiring migrate API which pulls in a lot of helpful things,
							 | 
						||
| 
								 | 
							
								such as rollbacks, update old items, only importing new items...etc.
							 | 
						||
| 
								 | 
							
								### Approach 2: Custom Drush Command
							 | 
						||
| 
								 | 
							
								Will import the first 100 images only, followed by 100 posts. 
							 | 
						||
| 
								 | 
							
								Also available for viewing on `/migration-posts` after import.
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								drush jie-posts
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								### Approach 3: Views JSON Source
							 | 
						||
| 
								 | 
							
								#### Requirements
							 | 
						||
| 
								 | 
							
								- views_json_source
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Make sure `views_json_source` module is included in your codebase.
							 | 
						||
| 
								 | 
							
								Then visit `/views-json-source` after enabling this module which is a preconfigured view of titles and body fields from external JSON.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								### Approach 4: Javascript Only
							 | 
						||
| 
								 | 
							
								 1. Attach a javascript library to a page
							 | 
						||
| 
								 | 
							
								 2. Fetch the API data and render it all client side
							 |