Package: aprillang
AprilA Programming Language to make API's !!Explore the docs »Report Bug.Request FeatureTable Of ContentsAbout the ProjectBuilt WithGetting StartedPrerequisitesInstallationUsagePackagesMaking yourown packagesRoadmapContributingLicenseAuthorsAbout The ProjectThis language was made for making API's great ease and more efficiency.The language connects each API endpoint to a specific program/command, in case you want to write the code for the endpoint '/home' in python and '/generate' in Cpp - this can be done.The language have packages for multiple languages for adapting april to the wanted language (some packages are made by the community too!!) . In case you dont find the required package for utilizing april in your wanted language - don't worry its easy to make a package for your own.Built WithWritten in python3Makes use of FASTAPIFeaturesEasy installSimpleEfficientInbuild ratelimiting features (if req)Auto-Generated API Docs (if req)Banned IPsDisallow Private IPs (if req)Cross platformGetting StartedPrerequisitesPython3Pip3Redis serverInstallationWIndows :pipinstallaprillangLinux / MacOs:pip3installaprillangUsageGet the list of allowed commandsapril-hGet info of the languageapril-aCompile an .apl file (april file):This converts the april code to python3 codeCompiled file is saved as filename without extention apl + '_apl.py'april-cfile.aplRun an .apl file (start the API server):Format for the command is - april -rhost:portapril-rfile.apl0.0.0.0:8080Get the version of april:april-vPackagesLanguageLinkCreatorInfoPythonLinkmerwin-asmLinkLuaLinkmerwin-asmLinkJSLinkaxoraxLinkTSLinkmerwin-asmLinkGoLinkmerwin-asmLinkRustLinkmerwin-asmLinkPHPLinkmerwin-asmLinkDartLinkmerwin-asmLinkRubyLinkmerwin-asmLinkAbout making a package yourselfThe packages are used to connect the april program and the program dedicated to the endpoint.When the program pointed to the endpoint is called the program is suplied with a call ID in the form of commandline argument (last argument). The program can access details related to the request in the json file "." + call ID + ".input". And the output of the program can be put in to the json file "." + call ID + ".output".About the input and output filesInput File:Json fileFilename : "." + call ID + ".input"Contains information about the request ,{
"request" : dict containing info of the request,
"input" : {"varible_name_in_the_url" : "value", ....}
}The 'request' dict have all the same keys as instarlette.requestsOutput File:Json fileFilename : "." + call ID + ".output"Should contain information about the response ,{
"headers" : <headers for the response>,
"status" : <status code>,
"output" : "the data to be send out to the user"
}The output and input files automatically gets deleted when the data in the output file is gained.SupportFor support, join our discord serverhttps://discord.gg/PXMSPJXhXdRoadmapSee theopen issuesfor a list of proposed features (and known issues).ContributingContributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make aregreatly appreciated.If you have suggestions for adding or removing projects, feel free toopen an issueto discuss it, or directly create a pull request after you edit theREADME.mdfile with necessary changes.Please make sure you check your spelling and grammar.Create individual PR for each suggestion.Please also read through theCode Of Conductbefore posting your first idea as well.Creating A Pull RequestFork the ProjectCreate your Feature Branch (git checkout -b feature/AmazingFeature)Commit your Changes (git commit -m 'Add some AmazingFeature')Push to the Branch (git push origin feature/AmazingFeature)Open a Pull RequestLicenseDistributed under the MIT License. SeeLICENSEfor more information.AuthorsMerwin-Comp Sci Student-Merwin-Main programmerContributorsAxorax