This article was co-authored by wikiHow staff writer, Rain Kengly. Rain Kengly is a wikiHow Technology Writer. As a storytelling enthusiast with a penchant for technology, they hope to create long-lasting connections with readers from all around the globe. Rain graduated from San Francisco State University with a BA in Cinema.
This article has been fact-checked, ensuring the accuracy of any cited facts and confirming the authority of its sources.
This article has been viewed 131,799 times.
Learn more...
Do you want Netflix to add a certain show or movie to their streaming service? Luckily, you'll be able to send suggestions to Netflix in a few simple steps. Since you can't do this through the Netflix app, you will need to use a desktop or mobile browser. You don't need a Netflix account to send suggestions, but you will need one to view Netflix shows and movies. This wikiHow will show you how to request new shows and movies from Netflix on your desktop or mobile browser.
Have you ever been dying to watch an old movie or show, but Netflix foils your plans by not offering your heart's desire on the platform? Well, thanks to Business Insider, we now know that the streaming service has a relatively under-the-radar page that allows subscribers to put in a request for titles they'd like to see become available. So perhaps all those new videos that arrive on Netflix every month aren't actually chosen at random.
Amazing, right? But there's a catch: If you were thinking that you'd request your favorite shows over and over again, don't bother. Netflix says that it keeps track of all user requests, so putting in a request for a title more than once won't do any good. But if you're lucky enough to have your pick chosen, Netflix promises it'll let you know so that you can start streaming ASAP.
And while you wait for your request to become available, might we suggest just browsing your regular ol' Netflix homepage? After all, the site does use a fancy algorithm to determine what kinds of shows and movies you like, so chances are, you'll never be without something to watch.
While licensed content can bring familiarity from audiences and preexisting demand, relying too much on this can bring future challenges and risks regarding control over medium and long term cash flow as owners of franchises and popular shows can request higher licensing fees. This suggests that, when it comes to the success of a streaming service, there might be significant importance in the balance between licensed and original series and films. With this being said, it is interesting to look at the current demand for original series around the world.
The chart below shows the Netflix original series with the most demand worldwide. As seen in the previous chart, Shadow and Bone and Stranger Things make the top of this list with exceptional levels of demand. The Night Agent, which was released late March this year - and has already been renewed for a second season, is third on this chart, with 38.4 times more global demand than the average series.
In the webinar, Hamilton also pointed out the success rate of Apple TV+ and Paramount+ and explained that, considering the average demand for their original series from the year, a high number of the original series they had aired over 2022 reached an exceptional level of demand. Ted Lasso from Apple TV+ and Halo from Paramount+ are good examples of this.
The chart below shows the global demand distribution of Apple TV+ and Paramount+ original series over the last 30 days. For Apple TV+, Ted Lasso still sits comfortably at the exceptional level, with 63.2 times more demand than the average series worldwide. Moreover, the Apple streaming service saw a number of new releases this year, Hello Tomorrow!, Extrapolations, and Liason, which are all sitting within the outstanding section at the moment. In addition to this, comedy drama, Shrinking, which stars Harrison Ford and Jason Segel, aired on Apple TV+ at the beginning of this year and is sitting close to an exceptional level with 25.63 times more global demand than the average series.
As for Paramount+, Star Trek: Picard, with 51.0 times more global demand than the average series, and Tulsa King, with 33.8 times more global demand than the average series, are both at exceptional levels of demand. School Spirits, Wolf Pack, and Rabbit Hole, where all released to the streaming service this year and all are all at an outstanding level of demand. Rabbit Hole, in particular, which had 29.9 times more global demand than the average series over the last 30 days could be one to keep an eye on, considering it was released just over one month ago.
If the field parameter is not set, the method name will be used as the field name.The @DgsQuery, @DgsMutation and @DgsSubscription annotations are shorthands to define datafetchers on the Query, Mutation and Subscription types.The following definitions are all equivalent.
Notice how a datafetcher can return complex objects or lists of objects.You don't have to create a separate datafetcher for each field.The framework will take care of only returning the fields that are specified in the query.For example, if a user queries:
The previous example assumed that you could load a list of Show objects from your database with a single query.It wouldn't matter which fields the user included in the GraphQL query; the cost of loading the shows would be the same.What if there is an extra cost to specific fields?For example, what if loading actors for a show requires an extra query?It would be wasteful to run the extra query to load actors if the actors field doesn't get returned to the user.
@DgsQuerypublic List shows() //Load shows, which doesn't include "actors" return shows;@DgsData(parentType = "Show", field = "actors")public List actors(DgsDataFetchingEnvironment dfe) Show show = dfe.getSource(); return actorsService.forShow(show.getId());The actors datafetcher only gets executed when the actors field is included in the query.The actors datafetcher also introduces a new concept; the DgsDataFetchingEnvironment.The DgsDataFetchingEnvironment gives access to the context, the query itself, data loaders, and the source object.The source object is the object that contains the field.For this example, the source is the Show object, which you can use to get the show's identifier to use in the query for actors.
Do note that the shows datafetcher is returning a list of Show, while the actors datafetcher fetches the actors for a single show.The framework executes the actors datafetcher for each Show returned by the shows datafetcher.If the actors get loaded from a database, this would now cause an N+1 problem. To solve the N+1 problem, you use data loaders.
Since v4.6.0, methods can be annotated with multiple @DgsData annotations.Effectively you can resolve multiple GraphQL Type fields via the same method implementation.To do so you will have to leverage the @DgsData.List annotation, for example:
The @InputArgument annotation will use the name of the method argument to match it with the name of an input argument sent in the query.Optionally we can specify the name argument in the @InputArgument annotation, if the argument name doesn't match the method argument name.
The framework converts input arguments to Java/Kotlin types.The first step for converting input arguments is graphql-java using scalar implementations to convert raw string input into whatever type the scalar represents.A GraphQL Int becomes an Integer in Java, a formatted date string becomes a LocalDateTime (depending on the scalars you're using!), lists become an instance of java.util.ArrayList.Input objects are represented as a Map in graphql-java.
The next step is the DGS Framework converting the Map to the Java/Kotlin classes that you use for the @InputArgument.For Java classes, the framework creates a new instance of the class using the no-arg constructor.This implies that a no-arg constructor is required.It then sets each field of the instance to the input argument values.
For Kotlin Data classes, the instance can only be created by passing in all arguments in the constructor.This means you have to make sure to make fields optional in the data class when the fields are optional in the GraphQL schema!
It's easy to confuse the conversion described above with JSON deserialization as you are familiar with in libraries such as Jackson.Although it looks similar, the mechanisms are completely unrelated. Input arguments aren't JSON, and the Scalar mechanism is really the core of how conversion works.This also means that Jackson annotations on Java/Kotlin types are not used at all.
@InputArgument is designed to work well with scalars.More information about defining custom scalars in the framework can be found here.For a scalar you typically either create a class representing the value, or use an existing type. Such types need to be mapped in Codegen configuration so that they don't (incorrectly) get generated.
If you're using Kotlin you must consider if an input type is nullable.If the schema defines an input argument as nullable, the code must reflect this by using a nullable type.If a non-nullable type receives a null value, Kotlin will throw an exception.
In Java you don't have to worry about this, types can always be null assuming you are using boxed types. Generally, we recommend using boxed types instead of unboxed if you are expecting null input.You do need to null check in your datafetching code for handling possible null inputs.If using unboxed types, null input will result in exceptions.
Input arguments are often defined as optional in schemas.Your datafetcher code needs to null-check arguments to check if they were provided.Instead of null-checks you can wrap an input argument in an Optional.
You do need to provide the type in the collectionType argument when using complex types, similar to using lists.If the argument is not provided, the value will be Optional.empty().It's a matter of preference to use Optional or not.
90f70e40cf