Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

refactor Web Crawler example - use constructor DI instead of Service.… #11

Merged
merged 1 commit into from
Sep 22, 2023

Conversation

Lahvac
Copy link
Collaborator

@Lahvac Lahvac commented Aug 10, 2023

DI refactoring

this.httpClient = httpClient;
// configure the client inside constructor if needed (add custom headers etc.)
this.httpClient.DefaultRequestHeaders.Add(HeaderNames.UserAgent, "SearchCrawler");
// get crawler base url from settings or site configuration, make sure that WebCrawlerBaseUrl is correct
string baseUrl = ValidationHelper.GetString(Service.Resolve<IAppSettingsService>()["WebCrawlerBaseUrl"], DocumentURLProvider.GetDomainUrl("DancingGoatCore"));
string baseUrl = ValidationHelper.GetString(appSettingsService["WebCrawlerBaseUrl"], DocumentURLProvider.GetDomainUrl("DancingGoatCore"));
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Now I'm wondering if we should make a new "section" in appsettings.json for Lucene - we do that with other integrations.

Example:

{
   // other settings ...

  "xperience.lucene": {
      "WebCrawlerBaseUrl": "..."
   }
}

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It depends, it is just usage example with configuration, not configuration of the integration module itself.
I would keep it as simple as possible.

Should I create the new configuration section?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good point! This isn't something we "ship" with the package.

However, this is an example we are providing to developers and from my experience, developers will copy examples assuming they are being given best practice guidance.

So I think we should set developers up for success and do what we would in a real project - at least for this part - in part because we might have appsettings.json configuration that does ship with the package in the future and these settings should be in the same place.

@bkapustik
Copy link
Collaborator

The resolution of this request has been moved into the following pull request
#20

@seangwright seangwright merged commit f992e8e into Kentico:main Sep 22, 2023
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants