RESTTful API description - faisaloulu/PWP GitHub Wiki
📑 Chapter summary
This chapter must provide a good overview of the Web API that your group is going to develop during the course. You should not focus in implementation aspects such as database structure, interfaces or the request/responses formats. We recommend that you look into existing APIs (see Related work below) before writing the description for your own API.In this Chapter you must describe JUST the RESTful API, NOT THE CLIENT. Remember that client and Web API should be totally decoupled.
- Understand what is an API
- Describe the project topic API
- Describe how the API will be used in the project
✔️ Chapter evaluation (max 7.5 points)
You can get a maximum of 7.5 points after completing this Chapter. More detailed evaluation is provided after each heading.📑 Content that must be included in the section
Describe the Web API briefly and comment which is the main functionality that it exposes to clients. Focus in the Web API not in the application which is using this API. Take into account that in the end, a WEB API is an encapsualted functionality as well as the interface to access that functionality. This section CANNOT include a description of an application or client that uses the API.
Justify also why you want to implement this API. Comment why a developer would like to integrate this API into their application. Try to "sell" the API to your potential customers.
A really short version of an overview for the RESTful Web API could be:
“The discussion forum Web API offers different functionalities to structure non-real-time conversations among the people of a group about topics they are interested in certain topic. Messages are grouped in Threads, that at the same time are grouped in Topics. The messages are accessible to anyone, but posts can only be created by providing credentials of a registered user [...] Clients using this service may implement applications similar to [...]“
Remember: The general description IS NOT just a description of the functionality. Try to market your API to potential customers.
✔️ Evaluation criteria(max 1.75 points)
You can get a maximum of 1.75 points in this section- The description is clearly written and explains what the API is for: 0.5
- The description includes a clear justification of why this project is useful. Why do you want to build this API: 0.5
- The description describes an API - not an application or client: 0.75
- This means that the description is written in terms of the functionality it makes available for clients, and internal working of the API
- tip: don't think about human users when writing the description - think about machines
✏️
This project is useful for students and unemployed people and tracks their progress and develops their skills to make them more useful for companies in the future. I want to develop this project because I want to design and develop job API which is giving data about companies, Job Seekers and jobs by these companies in Finland. This API is well developed for other web applications or machines to fetch the company’s information to develop another business process with them. We use our API for clients like Mobile, Tablet, Watch and Web-based Applications to get related jobs and jobseekers on-screen, applying for a job or jobs in favorites, monitor company credibility, Jobseeker Credibility and monitoring in current time. Developers from other companies could buy these APIs to access the information related to Finland companies and jobs by them and if needed job seeker information.
Why is API is useful because it will save time and money for recruitment companies as they are getting information about companies, jobs, and jobseeker easily by implementing our Job API?
📑 Content that must be included in the section
Define the main concepts and describe the relations among them textually. Roughly, a concept is a real-world entity that is expected to be of interest to users. This section will be used in Deadline 3 to generate the list of resources. Students should remember that some of the concepts might not be a resource by themselves, but just a part of it (resource property). In this section, students should not describe the RESTful resources, but identify which are the main ideas of the API. Do not forget to include the relations among the concepts.A description of the main concepts for the Forum API could be:
"The API permits users send messages. The forum contains a list of categories and a list of users. Each category specifies a name, a description and a thread. A thread is [...]The forum may contain 0 or more categories… Each category may have 0 or more threads… Users can write and read messages to a forum thread. A user has a profile, basic information, activity information (stores, for instance, all the messages sent by a user, the messages marked as favorites). [...]The user history contains information of the last 30 messages sent by the user.[…]"
Include a diagram which shows easily the relations among concepts.
This section is important because it outlines the concepts that you will later implement. In particular, the diagram defined here will follow you throughout the project report and you will be adding more details to it.
✔️ Evaluation criteria(max 1.5 points)
In this section you can get a maximum of 1.5 points:- Concepts are named and described: 0.5
- Relations among concepts is clear: 0.5
- A diagram that shows relations between concepts is provided: 0.5
✏️ This project is a Job Search application where Jobseeker find jobs from database and company can find the right jobseekers. This project API is based on different functions exposed to the client are for example 1- get a job with search parameter from the client when user wants to search for jobs like “IOS Developer” 2- Get all Job seekers related to parameters set by Company to see how many job seekers there are related to a specific jobs. 3- Get Jobseeker and company Credibility and Monitoring report data for analytics 4- Users can get jobseeker profile information in some areas in Finland.
📑 Content that must be included in the section
Describe at least two clients that could use your Web API. You must explain here which is the functionality provided by the client, and how use the Web API to implement this functionality.✔️ Evaluation criteria(max 1.75 points)
In this section you can get a maximum of 1.75 points- The client descriptions are written clearly and explain what they are for: 0.75
- Descriptions outline what parts of the API each client uses, and how: 0.5
- At least two more examples of clients are provided (1-2 sentences per client):0.5
✏️
Clients are web and mobile apps and they will get this data from our API using Get Request in the JSON form. This request will be secure with URL authentication with username and password and the client will fetch and parse this JSON into information and display on client screen and in case of edit or change information by client we will do this with ORM mapping and security features. Parts of our API like Job descriptions and company information is fetched by both clients.
📑 Content that must be included in the section
Find at least one API that resembles the functionality provided by yours. Explain in detail the functionality provided by the API. Classify the API according to its type (RPC, CRUD REST, pure REST, hypermedia driven ...) justifying your selection. Provide at least one example client that uses this API.The purpose of this task is to get more familiar with what an API is. This will be helpful in describing your own API. Therefore, it is recommended to do this section after you have decided the topic of your project but before writing your API description.
✔️ Evaluation criteria(max 2.5 points)
You can get a maximum of 2.5 points in this secton:- The selected API is similar or related to the project topic: 0.5
- The API classified correctly, and is described in terms of offered functionality: 1.0
- An example of a client that uses this API is provided, explaining briefly what it does: 0.5
- An additional API is provided 0.5
✏️
Many Job search API in the market by Job Portals but I like to give example or www.reed.co.uk which is the best Job search portal in the United Kingdom. They have Three areas implemented in API on this Link: https://www.reed.co.uk/developers/jobseeker
• Jobseeker • Courses • Recruiter API It is mentioned on this link that how many parameters needed in Get Request from Job Seeker Client a Website and a Mobile App of Reed company. Jobs - Search - Parameter This API runs a search of all the jobs on the reed site and returns a list of jobs which match the parameters. Criteria Name Possible Values employerId id of employer posting job employerProfileId profile id of employer posting job keywords any search keywords locationName the location of the job distanceFromLocation distance from location name in miles (default is 10) permanent true/false contract true/false temp true/false partTime true/false fullTime true/false minimumSalary lowest possible salary e.g. 20000 maximumSalary highest possible salary e.g. 30000 postedByRecruitmentAgency true/false postedByDirectEmployer true/false graduate true/false resultsToTake maximum number of results to return (defaults and is limited to 100 results) resultsToSkip number of results to skip (this can be used with resultsToTake for paging) Notes: Only one of employerId and employerProfileId can be set. Profile Id will be selected over Employer Id. Not all employers have a profile and therefore do not have a profile id. Jobs - Search - Returns List of jobs matching the criteria. Each job contains the following information: Job Id Employer Id Employer Name Employer Profile Id Job Title Description Location Name Minimum Salary Maximum Salary Notes: If the job salary has been set as hidden on reed.co.uk, none of the salary information will show. If a location is used which could apply to more than one place the best match is used for the search and a list of alternatives is provided. Jobs - Search - Implementation Use the following url structure to access the API:: https://www.reed.co.uk/api/{versionnumber}/search?keywords={keywords}&loc ationName={locationName}&employerId={employerId}&distanceFromLocation={distance in miles} Follow this structure for each parameter you wish to search with. If you do not want to use any of these parameters simply leave them out. e.g https://www.reed.co.uk/api/1.0/search?keywords=accountant&location=london&employerid=123&distancefromlocation=15 If no jobs match the search parameters an empty list will be returned. If there is more than one location match, these will also be returned. Important: You will need to include your api key for all requests in a basic authentication http header as the username, leaving the password empty. Jobs - Details - Parameter This API requires the id of the job. Jobs - Details - Returns The details of the requested job. Each job contains the following information: Employer Id Employer Name Job Title Job Description Location Name Minimum Salary Maximum Salary Yearly Minimum Salary Yearly Maximum Salary Currency Salary Type (per hour, per day, per week, per month, per annum) ContractType (permanent, contract, temporary) Job Type (Full Time/Part Time) Expiration Date External Url (for jobs with the application on an external site) Url to job on reed.co.uk Notes: If the job salary has been set as hidden on reed.co.uk, none of the salary information will show. Jobs - Details - Implementation Use the following url to access this API: https://www.reed.co.uk/api/{version number}/jobs/{Job Id} e.g. https://www.reed.co.uk/api/1.0/jobs/132 If no jobs match a blank job will be returned.
Task | Student | Estimated time |
---|---|---|
All | Faisal Maqsood Qadri | 2 Hour |