Skip to content

Consider ideas that could not be prioritised during thesis #62

Description

@efebeydogan01

As part of my thesis, I worked on improving and extending RESTRuler. To determine what to work on, I conducted interviews with 5 API experts to gather their opinions and analyse the results. While I worked on some of the things they brought up, I was unable to work on every rule they mentioned due to time constraints. These are listed below for future reference, so in the future we could split these into smaller tasks of their own and work on them as we find the time:

  • Content-Type must be used: This was one of the highly rated rules for improvement; however, I could not work on improving it. Since this was rated highly by the experts, it could be prioritised for improvement in the future.
  • Content-length should be used: This was a highly rated new rule that the experts suggested. I did not work on implementing it because conducting static analysis to determine the existence of Content-length could be misleading. We could think more about it in the future to see how it could be checked statically.
  • API code should be checked for compliance using RESTRuler before any code is merged: Four of the experts explicitly stated they could benefit from a check on the CI that evaluates API code for compliance to our rules and warns the developers accordingly. In the future, we may see how RESTRuler can be integrated into CI pipelines.
  • APIs should be easily extensible: Extensibility was raised by 2 API experts, we may look into what constitutes as extensibility in an API in the first place, and possibly implement a check for this.
  • APIs should be understandable: Understandability was brought up by one expert, however I could not spend time on it as it is a rather abstract topic. A future study may focus on how to assess an API's understandability and implement this as a rule.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions