PHP REST API From Scratch [3] - Update & Delete

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
hey guys welcome to part three of building a REST API with PHP from scratch no frameworks or anything so in the last video we made the read single so that we could get a single post we also did the create so we can make a post request and we could add a post through through our rest client alright so now we're gonna do update so we want to be inside of our post model and what I'm gonna do is copy the create method because there's a lot of stuff that is the same so I'm gonna create that I'm arm sorry I'm gonna copy that whole method and paste it in and we'll change this to update post and it'll change this to update now as far as the query goes we're going to instead of insert into we want to say update update this table and we can do this we can do the same thing here set all this stuff but we need to say what posts were updating so right after the category ID we're gonna say where and we're gonna say where ID equals question mark alright actually we could use a named parameter here so we could do : ID like that it's up to you if you want to use named parameters or positional so let's see we prepare the statement we're still we're gonna clean the data just like we did before but we also want the ID so we're going to let's actually just copy that down and let's do ID so this ID equals this ID like that and then we want to bind the ID as well so right here and we're binding it here - this ID then we want to execute it we want this this stuff will be the same so if something goes wrong it'll print out the error and that's it so pretty easy pretty similar to the create now we need to create in our API post folder we need to create a file called update dot PHP alright and for update I'm gonna copy from C create dot PHP hole grab down to let's see actually it's let's just copy the whole thing and go to update usually creates and updates are very similar now one thing I do want to change is from post I want to make it a put request okay so we'll go down here we're gonna get the stuff that is submitted but we also need to set the ID to be updated okay since this isn't a create it's an ID I mean I'm sorry it's an update we need to know the ID so for that we'll say post ID is going to be equal to whatever the data ID is okay and then we're going to set the properties here and let's just change this to update and we're going to call the update method and then we'll say post updated or post not updated and that should do it it should be as easy as that so we'll save and let's try it out so what we're gonna do is we're gonna say post update dot PHP and then we're gonna go to let's see actually want to change this to a put request and headers should still have the application Jason as the content type and then in the body you know let's add ID so let's say we want to update for and we'll change the title to updated post and we'll say this is an updated post and that should be good so let's let's try it out we'll send and we get post updated now this is ID 4 so let's check it out by going to read underscore single dot PHP and we want to check ID of 4 and we want to make that a get request and there we go title is updated post and body is this is an updated post so we've successfully done the update so now let's do the delete which is actually pretty easy we're going to first go to our model so you can see the the the process that that we that we're doing here so we'll go to the model and let's see we'll just type it out this is easy enough so make sure we go under the update we're still within the class we'll say delete post so public function delete so our query query is going to be delete from we want to concatenate this table and then we just want to say where ID is equal to and I'll just use a named parameter here so we're ID is equal to colon ID and then we want a prepared statement so I'll just grab that from one of these like that and let's clean the ID so I'm gonna grab this remember this is this is a delete so we're not the only thing that it's going to take in is the ID then we need to bind the ID so I'll just copy from right here should probably comment this stuff alright and then we just want to execute the query and just do this in return true if it executes return false if not like that and that's it so we'll save now we'll go to our post folder and create a file called delete dot PHP and in this file I'm just gonna copy let's see let's copy the update and paste that in and we're going to change the allowed method to be a delete this is all going to be the same this is going to get the posted data which will just be the ID we want to set the ID to the data ID we don't need any of this because we're not adding this stuff and then let's say delete post so we want to call post delete that we just created and we'll change this and this to delete it alright so we'll save and let's go back to postman and let's delete will delete seven the one that we created so we'll say API post delete dot PHP make sure that it's a delete request and then for the headers you want to make sure it's jason and then the body all we need is the ID that we want to delete so we'll say delete seven and send and post deleted now let's go to post read dot PHP make a get request and now if we look one two three four five six and no seven so seven has been deleted alright so that's it guys we now have a full crud rest api for our blog post now what I would like you guys to do if you're interested is to finish this with the categories and if if you are confused on how to start that out then I'll help you with that but then I think that you should try to do it on your own and just take the same principles that we've used so far and it'll be even easier because categories only really have a name they have an ID in the name so what we'll do just to start you guys off is create a folder and API called category and we also want to create a model called category dot php' and the reason I'm not doing this is one it gives you guys a chance to do it on your own and in another it's it'll be very repetitive I don't want to do the same exact thing for categories but we could even copy let's see no let's not copy let's we'll just type this in real quick so PHP would create a class of category and we want our DB stuff so we want a connection we want a table and in this case it's going to be categories then you want your properties so we'll do public ID public name public created at ok then we want our constructor and I can actually copy some of this stuff it's so from the post model we'll just grab the constructor and then what I'll do is I'll do that I'll do the first one I'll do the read and then if you guys want you can continue and do the rest of them ok so just like with post where we had the read here we can actually I'll just type it out this one this is much easier since we're not doing any joins or anything so public function read and actually let's put a comment here so we'll say get categories so we want to create our query so our query is going to be select and then what do we want to select we want the ID the name and created actually just the ID in the name but then we want to do from and then the table so what I'll do is concatenate this table and let's see from this table and then we'll just say order by created at descending okay so that should do it for the query now right underneath that we want to prepare the statement so we'll say statement equals this connection prepare pass in the query execute it so s s TM T execute and then just return the statement alright so we'll save that now in Category inside the api folder we'll create a file called read dot PHP and let's see in this file we're gonna do pretty much the same thing we did in the read in the post except some things will be changed so I'm just gonna copy this whole thing and we want the headers to be the same we don't want the post model this time though we want the category model okay connect to the database we're not going to instantiate a blog post we're going to stanch EI a category object so we want to change this to category and change this to category it's still going to take in the database then we want our category read query so this will be category read we're gonna get our results count we're gonna see if there's check if any cat categories and then we're gonna create I will say cat array I'm just going to call this cat array okay and again we want it put in the data then we're going to loop through we're gonna extract the row and change this to say cat item and then it doesn't have all this stuff categories all we really want is the ID and the name oh you know what I think I messed one thing up in the model real quick if we just go back over to the model since I ordered by created at we have to select that as well alright so back to the category read so we have the cat item now we want to push on to the category array data the category item and then we want to output the jason of cabaret and then down here we'll say no categories message will be no categories found alright so let's try it I did that kind of fast so hopefully I didn't mess anything up so we can now go to API category slash read dot PHP get request send and there we go so we have an adjacent object with a value a key of data and then we have the array of categories with the ID and the name so it's up to you guys if you want to keep going and you want to do a whole crud thing for the categories that might be some good practice but other than that that's going to be it there is the the github repository in the description I'm not sure if I'm gonna finish the categories and put that in the repository right this minute but I probably will eventually or maybe someone can make a pull request with it just make sure it's clean please but that's it guys thanks for watching and I hope you enjoyed it and I'll see you next time
Info
Channel: Traversy Media
Views: 85,169
Rating: undefined out of 5
Keywords: php, php rest api, php restful api, php api
Id: tG2U18EmIu4
Channel Id: undefined
Length: 16min 14sec (974 seconds)
Published: Sun May 27 2018
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.