Skip to content

Latest commit

 

History

History
executable file
·
425 lines (297 loc) · 12 KB

rest-api-quiz.md

File metadata and controls

executable file
·
425 lines (297 loc) · 12 KB

REST APIs

Q1. What type of relationship is defined as one resource existing only if another parent resource exist-for example, pages in a book?

  • Partial
  • dependent
  • associative
  • linked

Q2. Which URL pattern is recommended when working with one resource and a collection of resources?

  • /companies/{id} and/company
  • /company/{id} and/companies
  • /companies/{id} and/companies
  • /company/{id} and/company

Q3. When dealing with JSON web Tokens (JWTs), what is a claim?

  • data in the token
  • Ownership
  • a permission
  • and integer

Q4. Which REST contraint specifies that knowledge and understanding obtained from one component of the API should be generally applicable elsewhere in the API?

  • Uniform Interface
  • Client-Server
  • Stateless
  • Chacheable

Q5. What would you enable to allow a browser on another site to make an AJAX request to your API?

  • HTTP
  • REST
  • OPTIONS
  • CORS

Q6. APIs commonly use webhooks to _.

  • notify other systems of an event
  • catch error faster
  • improve error logging
  • log additional data

Q7. What is the underlying goal of all APIs?

  • to add new technologies to an organization's infrastructure.
  • to share features and functionality with other system.
  • to move infrastructure to the cloud.
  • to appease the latest digital transformation effort.

Q8. Which is a common command-line tool for using or exploring an API?

  • bash
  • curl
  • ssh
  • powerShell

Q9. What is the modern specification for describing an API?

  • OpenAPI (Swagger)
  • WADL
  • WSDL
  • OAuth

Explanation: OpenAPI Specification

Q10. Which HTTP verb is normally used to update or create a resource in an API?

  • SUBMIT
  • WRITE
  • POST
  • CREATE

Explanation: HTTP request methods

Q11. What is one benefit of server-side caching in APIs?

  • Mobile app work better.
  • It improves uptime.
  • It offers better security.
  • It reduce load on servers.

Q12. Your API resource does no allow deletion, and a client application attempted to delete the resource. What HTTP respose code should you return?

  • 409 Conflict
  • 400 Bad Request
  • 406 Not Acceptable
  • 405 Method Not Allowed

Explanation: Response Codes

Q13. What is OpenID Connect?

  • an identify layer on top of OAuth 2.0
  • the new name for SAML 3.0
  • a modern replacement for API keys
  • an SSO competitor for OAuth 2.0

Explanation: What is OpenID Connect?

Q14. What is one benefit of GraphQl over REST approaches?

  • flexible querying/responses
  • more stable APIs
  • compatible with more gateways
  • more secure by default

Explanation: GraphQL vs. REST

Q15. Which REST constraint specifies that there should be no shared context?

  • Stateless
  • Client-Server
  • Uniform Interface
  • Cacheable

Q16. What purpose does a User-Agent serve?

  • It identifies the user ID.
  • It identifies the client application or SDK.
  • It identifies if the API should expect a user authentication.
  • It identifies if the API should accept microservice traffic.

Q17. If you were to add versioning by using the Accept and Content-Type header, what would be the correct format of the header value?

  • application/json
  • application/json_version2
  • text/html
  • application/vnd.myapp.v2+json

Reference

Q18. What is one benefit that OAuth provides over an API key approach?

  • A token is encrypted.
  • A token is encoded.
  • A token is scoped to the use case.
  • A token can be shared between systems.

Explanation: How to easily secure your APIs with API keys and OAuth

Q19. The ability to execute the same API request over and over again without changing the resource's state is an example of _.

  • stateless architecture
  • idempotency
  • a uniform interface
  • cacheability

Q20. What component can you use to wrap legacy architectures or protocols into a REST interface for easier consumption and integration?

  • API proxy
  • API gateway
  • OpenAPI
  • OAuth authorization server

Q21. What protection does a JSON Web Token (JWT) offer to mitigate tampering with its contents?

  • transport over SSL
  • encrypted payload
  • a signature
  • encoded payload

Q22. What OAuth term is used to represent permissions?

  • token
  • scope
  • claim
  • back channel

Explanation: OAuth Scopes

Q23. What additional type of token would you see when using OpenID Connect?

  • ID token
  • refresh token
  • access token
  • auth code token

Q24. What should you add to a Cache-Control response header to specify that a response should not be stored in an intermediary cache?

  • no-proxy
  • client-only
  • restricted
  • private

reference

Q25. Which OAuth grant type can support a refresh token?

  • Authorization Code Grant
  • Client Credentials Grant
  • Implicit Grant
  • Authentication Grant

Reference:

Q26. Using OAuth, what scope would you request for write access to the API?

  • It varies from API to API.
  • admin
  • write
  • read-write

Q27. Which property would you use to include subresources directly into a JSON document?

  • _embedded
  • resources
  • subresources
  • _links

Q28. What is the best way to track SDK and version usage?

  • tracking downloads
  • Accept headers
  • user agents
  • polling users

Q29. Which REST constraint allows for the presence of caching, routing, and other systems between the client and server?

  • Layered System
  • Stateless
  • Client-Server
  • Cacheable

Q30. Which content is best to include in your documentation?

  • your tech stack
  • reasoning for your naming schema
  • your mission statement
  • sample code

Q31. What metric tracks overall availability for your API?

  • Response Time
  • Time to First Hello World
  • TTL
  • Uptime

Q32. What is the recommended method and URL pattern for retrieving a specific user?

  • GET /user/{id}
  • GET /users/{id}
  • GET /user?id={id}
  • GET /users?id={id}

Q33. What is the purpose of a link relation?

  • to describe relationships between resources or actions
  • to describe subresources related to the current one
  • to link two resources together
  • to describe a resource and its purpose

Q34. When building SDKs, which languages should you support?

  • Java, Javascript, and .NET
  • and you can support
  • PHP, Python, and Go
  • the languages that your target users use

Q35. Which property would you use to include references to other resources in a JSON document?

  • resources
  • _embedded
  • subresources
  • _links

Q36. What is OAuth?

  • an authorization framework for granted delegated access
  • an approach to single sign-on for APIs
  • a method for API authentication
  • HTTP Basic Authentication 2.0

Q37. What should your API documentation describe?

  • JSON
  • HTTP
  • common use cases
  • your tech stack

Q38. What is the purpose of an OAuth refresh token?

  • to share user profile information
  • to update an API configuration
  • to keep a web session active
  • to retrieve an access token

Explanation: Understanding Refresh Tokens

Q39. What is Time to First Hello World?

  • how long it takes for a developer to do something with your API
  • how long it takes to start a new programming language
  • how long it takes to install your SDK
  • how long it takes to read your documentation

Q40. Which response header tells the client and intermediaries that the response is not to be cached anywhere?

  • Cache-State: none
  • Expires:-1
  • Cache-Control: no-cache
  • Cache-Control: no-store

Q41. What component hides the distinctions or boundaries between various microservices from end-client applications?

  • API gateway
  • API logging
  • a layered system
  • API proxy

Q42. The textbook approach to api versioning is to use _.

  • common knowledge
  • URLs
  • no versioning
  • the Accept header

Q43. Which is the most secure method to transmit an API key?

  • URL parameter
  • Authorization header
  • Base64 encoding
  • Basic Auth

Q44. Within Oauth, what component validates the user's identity?

  • client
  • not specified
  • authorization server
  • resource server

Q45. API traffic that is entirely internal to your organization is normally called _?

  • inbound traffic
  • north-south traffic
  • internal traffic
  • east-west traffic

Q46. What is the best approach for requesting JSON instead of XML from an API?

  • Add .json to the URL.
  • APIs do not use XML.
  • Use the Content-Type header.
  • Use the Accept header.

Q47. When a user attempts to access a record that is not their own, which HTTP response code is the most appropriate?

  • 403
  • 404
  • 401
  • 405

Explanation: Response Codes

Q48. Which is a benefit of using an API gateway?

  • HTTP verbs
  • JSON payloads
  • HTTP response codes
  • rate limiting/throttling

Q49. API testing must be treated as _?

  • red team testing
  • white box testing
  • blue box testing
  • black box testing

Q50. Which HTTP verb is used in a CORS preflight request?

  • PUT
  • POST
  • GET
  • OPTIONS

Q51. Which response header will tell the client that the response is cached for 1 minute ?

  • Expires: 1 minute
  • Cache-Control: max-age=60
  • Expires: 1 January 2020
  • Cache-Expires: max-age=60

Explanation: Cache Control Header

Q52. What is the concept that allows an API client to explore an API via links embedded in payloads?

  • hypermedia
  • link relations
  • parsing
  • browsing

Q53. Which HTTP response code describes a new resource as created successfully?

  • 200
  • 201
  • 204
  • 202

Explanation: Response Codes

Q54. Which is an example of Code on Demand?

  • AWS Lambda
  • downloading open-source software
  • Serverless
  • JavaScript on a webpage

Explanation: Code on Demand

Q55. Which URL pattern should you follow for accessing a subresource attached to a specific resource?

  • /companies/employees/{companyId}/{employeeId}
  • /company/{companyId}/employees/{employeeId}
  • /companies/{companyId}/employees/{employeeId}
  • /companies/{companyId}/employee/{employeeId}

Explanation: Resource Naming

Q56. Which REST constraint essentially prohibits the use of cookies?

  • Stateless
  • Cacheable
  • Layered System
  • Uniform Interface